Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
operation-control-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王锦盛
operation-control-platform
Commits
aff46eb8
Commit
aff46eb8
authored
Mar 12, 2022
by
胡秀武
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
胡秀武:模型列表树导航树
parent
17d8d6ab
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
166 additions
and
45 deletions
+166
-45
src/main/java/com/pms/ocp/common/exception/GlobalExceptionHandler.java
.../com/pms/ocp/common/exception/GlobalExceptionHandler.java
+1
-0
src/main/java/com/pms/ocp/common/utils/TreeUtils.java
src/main/java/com/pms/ocp/common/utils/TreeUtils.java
+11
-11
src/main/java/com/pms/ocp/controller/ModelBaseController.java
...main/java/com/pms/ocp/controller/ModelBaseController.java
+6
-0
src/main/java/com/pms/ocp/controller/ModelClassifyController.java
.../java/com/pms/ocp/controller/ModelClassifyController.java
+0
-2
src/main/java/com/pms/ocp/mapper/ModelIssueMapper.java
src/main/java/com/pms/ocp/mapper/ModelIssueMapper.java
+9
-2
src/main/java/com/pms/ocp/model/entity/ModelClassify.java
src/main/java/com/pms/ocp/model/entity/ModelClassify.java
+4
-0
src/main/java/com/pms/ocp/model/entity/OcpApiSubs.java
src/main/java/com/pms/ocp/model/entity/OcpApiSubs.java
+2
-0
src/main/java/com/pms/ocp/model/entity/TreeNode.java
src/main/java/com/pms/ocp/model/entity/TreeNode.java
+27
-25
src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java
src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java
+1
-1
src/main/java/com/pms/ocp/service/ModelIssueService.java
src/main/java/com/pms/ocp/service/ModelIssueService.java
+4
-0
src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java
...va/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java
+6
-4
src/main/java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java
.../java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java
+43
-0
src/main/resources/mapper/ModelIssueMapper.xml
src/main/resources/mapper/ModelIssueMapper.xml
+52
-0
No files found.
src/main/java/com/pms/ocp/common/exception/GlobalExceptionHandler.java
View file @
aff46eb8
...
...
@@ -33,6 +33,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler
(
value
=
Exception
.
class
)
public
BaseResponse
exceptionHandler
(
Exception
exception
)
{
exception
.
printStackTrace
();
log
.
error
(
"GlobalExceptionHandler.exceptionHandler"
,
exception
);
return
new
BaseResponse
(
CodeEnum
.
UNKNOWN
);
}
...
...
src/main/java/com/pms/ocp/common/utils/TreeUtils.java
View file @
aff46eb8
...
...
@@ -2,10 +2,7 @@ package com.pms.ocp.common.utils;
import
com.pms.ocp.model.entity.TreeNode
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
/**
* @author huxiuwu
...
...
@@ -20,7 +17,7 @@ public class TreeUtils {
List
<
T
>
treeList
=
new
ArrayList
<>();
for
(
T
treeNode
:
treeNodes
)
{
if
(
pid
.
equals
(
treeNode
.
get
Pid
()))
{
if
(
pid
.
equals
(
treeNode
.
get
pCode
()))
{
treeList
.
add
(
findChildren
(
treeNodes
,
treeNode
));
}
}
...
...
@@ -33,7 +30,7 @@ public class TreeUtils {
*/
private
static
<
T
extends
TreeNode
>
T
findChildren
(
List
<
T
>
treeNodes
,
T
rootNode
)
{
for
(
T
treeNode
:
treeNodes
)
{
if
(
rootNode
.
get
Id
().
equals
(
treeNode
.
getPid
()))
{
if
(
rootNode
.
get
Code
().
equals
(
treeNode
.
getpCode
()))
{
rootNode
.
getChildren
().
add
(
findChildren
(
treeNodes
,
treeNode
));
}
}
...
...
@@ -47,18 +44,21 @@ public class TreeUtils {
List
<
T
>
result
=
new
ArrayList
<>();
//list转map
Map
<
Lo
ng
,
T
>
nodeMap
=
new
LinkedHashMap
<>(
treeNodes
.
size
());
Map
<
Stri
ng
,
T
>
nodeMap
=
new
LinkedHashMap
<>(
treeNodes
.
size
());
for
(
T
treeNode
:
treeNodes
){
nodeMap
.
put
(
treeNode
.
get
Id
(),
treeNode
);
nodeMap
.
put
(
treeNode
.
get
Code
(),
treeNode
);
}
for
(
T
node
:
nodeMap
.
values
())
{
T
parent
=
nodeMap
.
get
(
node
.
getPid
());
if
(
parent
!=
null
&&
!(
node
.
getId
().
equals
(
parent
.
getId
()))){
T
parent
=
nodeMap
.
get
(
node
.
getpCode
());
if
(
parent
!=
null
&&
(
node
.
getpCode
().
equals
(
parent
.
getCode
()))
&&
(!
""
.
equals
(
node
.
getpCode
())||
!
""
.
equals
(
parent
.
getCode
()))){
if
(
parent
.
getChildren
()
==
null
){
parent
.
setChildren
(
new
LinkedList
<>());
}
parent
.
getChildren
().
add
(
node
);
continue
;
}
result
.
add
(
node
);
}
...
...
src/main/java/com/pms/ocp/controller/ModelBaseController.java
View file @
aff46eb8
...
...
@@ -313,4 +313,10 @@ public class ModelBaseController {
return
ResponseVO
.
ok
(
modelRelationService
.
deleteModelRelation
(
objId
,
modelCode
));
}
@ApiOperation
(
"模型列表-导航树"
)
@PostMapping
(
"/delete/model/modelListNavigation"
)
public
ResponseVO
modelListNavigation
(
@RequestParam
(
required
=
false
)
String
searchCondition
)
{
return
modelIssueService
.
modelListNavigation
(
searchCondition
);
}
}
src/main/java/com/pms/ocp/controller/ModelClassifyController.java
View file @
aff46eb8
...
...
@@ -29,8 +29,6 @@ public class ModelClassifyController {
/**
* 模型分类导航
*
* @param searchCondition 分类名称
* @return pms.ocp.model.vo.ResponseVO
* @author huxiuwu
* @date 2022/3/9
...
...
src/main/java/com/pms/ocp/mapper/ModelIssueMapper.java
View file @
aff46eb8
...
...
@@ -2,14 +2,21 @@ package com.pms.ocp.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.pms.ocp.model.entity.ModelIssue
;
import
com.pms.ocp.model.entity.TreeNode
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.data.repository.query.Param
;
import
java.util.List
;
/**
* @Auther: wangjian
* @Date: 2022/2/22 16:25
* @Description:模型订阅数据层接口
*/
//
@Mapper
public
interface
ModelIssueMapper
extends
BaseMapper
<
ModelIssue
>
{
public
interface
ModelIssueMapper
extends
BaseMapper
<
ModelIssue
>
{
List
<
TreeNode
>
selectOrganData
();
List
<
TreeNode
>
selectModelAndModelGroup
(
@Param
(
"searchCondition"
)
String
searchCondition
);
}
src/main/java/com/pms/ocp/model/entity/ModelClassify.java
View file @
aff46eb8
...
...
@@ -20,6 +20,10 @@ import java.util.Date;
@TableName
(
"ocp_model_group"
)
public
class
ModelClassify
{
public
ModelClassify
()
{
this
.
groupCreateTime
=
new
Date
();
}
/**
* 模型分类编号
*/
...
...
src/main/java/com/pms/ocp/model/entity/OcpApiSubs.java
View file @
aff46eb8
...
...
@@ -3,6 +3,7 @@ package com.pms.ocp.model.entity;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -37,6 +38,7 @@ public class OcpApiSubs {
@ApiModelProperty
(
"公司编码"
)
private
String
subsCompanyCode
;
@JsonIgnore
@ApiModelProperty
(
"是否删除0-否,1-是"
)
private
long
isDelete
;
...
...
src/main/java/com/pms/ocp/model/entity/TreeNode.java
View file @
aff46eb8
package
com.pms.ocp.model.entity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -9,43 +12,42 @@ import java.util.List;
* @version 1.0
* @date 2022/3/8 17:53
*/
public
class
TreeNode
<
T
>
implements
Serializable
{
@Data
@ApiModel
(
"树节点表"
)
public
class
TreeNode
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
private
Long
id
;
@ApiModelProperty
(
"编码"
)
private
String
code
;
/**
* 上级ID
*/
private
Long
pid
;
/**
* 子节点列表
*/
private
List
<
T
>
children
=
new
ArrayList
<>();
@ApiModelProperty
(
"父类编码"
)
private
String
pCode
;
public
Long
getId
()
{
return
id
;
}
@ApiModelProperty
(
"名称"
)
private
String
name
;
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
@ApiModelProperty
(
"公司编码"
)
private
String
companyCode
;
public
Long
getPid
()
{
return
pid
;
}
@ApiModelProperty
(
"子类"
)
private
List
<
TreeNode
>
children
;
public
void
setPid
(
Long
pid
)
{
this
.
pid
=
pid
;
}
@ApiModelProperty
(
"子类"
)
private
int
belongLevel
;
public
List
<
T
>
getChildren
()
{
return
c
hildren
;
public
String
getCode
()
{
return
c
ode
==
null
?
""
:
code
;
}
public
void
setChildren
(
List
<
T
>
children
)
{
this
.
children
=
children
;
public
String
getpCode
()
{
return
pCode
==
null
?
""
:
pCode
;
}
public
String
getCompanyCode
()
{
return
companyCode
==
null
?
""
:
companyCode
;
}
}
src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java
View file @
aff46eb8
...
...
@@ -44,7 +44,7 @@ public class OcpModelGroupVO implements Serializable {
private
String
modelGroupPcode
;
/**
* 上级模型分类
id
* 上级模型分类
名称
*/
@ApiModelProperty
(
value
=
"上级模型分类名称"
)
@TableField
(
exist
=
false
)
...
...
src/main/java/com/pms/ocp/service/ModelIssueService.java
View file @
aff46eb8
...
...
@@ -2,6 +2,7 @@ package com.pms.ocp.service;
import
com.pms.ocp.model.dto.ModelIssueDTO
;
import
com.pms.ocp.model.entity.ModelIssue
;
import
com.pms.ocp.model.vo.ResponseVO
;
import
java.util.List
;
...
...
@@ -59,4 +60,7 @@ public interface ModelIssueService {
* @return
*/
ModelIssueDTO
getModelIssue
(
String
modelId
);
ResponseVO
modelListNavigation
(
String
searchCondition
);
}
src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java
View file @
aff46eb8
...
...
@@ -13,6 +13,7 @@ import com.pms.ocp.service.ModelClassifyService;
import
com.pms.ocp.service.OcpModelGroupService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.*
;
...
...
@@ -36,7 +37,6 @@ public class ModelClassifyServiceImpl implements ModelClassifyService {
/**
* currentPage pageSize
* 模型分类-导航树
*
* @return List<com.pms.ocp.model.vo.OcpModelGroupVO>
* @author huxiuwu
* @date 2022/3/8
...
...
@@ -70,8 +70,8 @@ public class ModelClassifyServiceImpl implements ModelClassifyService {
Map
<
String
,
OcpModelGroupVO
>
groupByCode
=
ocpModelGroupVOList
.
stream
().
collect
(
Collectors
.
toMap
(
OcpModelGroupVO:
:
getModelGroupCode
,
Function
.
identity
(),
(
key1
,
key2
)
->
key2
));
//根据key获取前端传入code的对象
OcpModelGroupVO
ocpModelGroupVO
=
groupByCode
.
get
(
parentGroupCode
);
//模糊查询
PageHelper
.
startPage
(
currentPage
,
pageSize
);
//模糊查询
List
<
OcpModelGroupVO
>
dimConditionList
=
this
.
selectByCondition
(
null
,
subclassGroupName
);
//递归获取模糊查询后属于parentGroupCode子集
List
<
OcpModelGroupVO
>
childrenList
=
findChildren
(
dimConditionList
,
ocpModelGroupVO
,
new
LinkedList
<>());
...
...
@@ -87,6 +87,7 @@ public class ModelClassifyServiceImpl implements ModelClassifyService {
* @author huxiuwu
* @date 2022/3/9
**/
@Transactional
@Override
public
ResponseVO
update
(
List
<
ModelClassify
>
list
)
{
boolean
isUpdateSucceed
=
ocpService
.
saveOrUpdateBatch
(
list
);
...
...
@@ -104,6 +105,7 @@ public class ModelClassifyServiceImpl implements ModelClassifyService {
* @author huxiuwu
* @date 2022/3/9
**/
@Transactional
@Override
public
ResponseVO
insert
(
List
<
ModelClassify
>
list
)
{
boolean
result
=
ocpService
.
saveBatch
(
list
);
...
...
@@ -163,7 +165,7 @@ public class ModelClassifyServiceImpl implements ModelClassifyService {
//设置上级父类名称
node
.
setModelGroupPName
(
parent
.
getModelGroupName
());
//说明他有父类其下子类都需要加一级
addLevel
(
node
,
treeNodes
);
//
addLevel(node,treeNodes);
parent
.
getChildrenList
().
add
(
node
);
continue
;
}
...
...
@@ -198,7 +200,7 @@ public class ModelClassifyServiceImpl implements ModelClassifyService {
QueryWrapper
<
OcpModelGroupVO
>
queryWrapper
=
new
QueryWrapper
<>();
//根据是否传入搜索条件创建构造器进行查询
queryWrapper
.
eq
(
StringUtils
.
isNotEmpty
(
searchCondition
[
0
]),
"model_group_pcode"
,
searchCondition
[
0
])
.
like
(
StringUtils
.
isNotEmpty
(
searchCondition
[
1
]),
"model_group_name"
,
searchCondition
[
1
]).
orderBy
(
false
,
false
,
"group_ctime"
);
.
like
(
StringUtils
.
isNotEmpty
(
searchCondition
[
1
]),
"model_group_name"
,
searchCondition
[
1
]).
orderBy
Desc
(
"group_ctime"
);
return
classifyMapper
.
selectList
(
queryWrapper
);
}
}
src/main/java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java
View file @
aff46eb8
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.utils.TreeUtils
;
import
com.pms.ocp.mapper.ModelIssueMapper
;
import
com.pms.ocp.model.dto.ModelIssueDTO
;
import
com.pms.ocp.model.entity.ModelIssue
;
import
com.pms.ocp.model.entity.TreeNode
;
import
com.pms.ocp.model.vo.ResponseVO
;
import
com.pms.ocp.service.ModelIssueService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.security.acl.Group
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
...
...
@@ -25,6 +32,9 @@ public class ModelIssueServiceImpl implements ModelIssueService {
@Autowired
private
ModelIssueMapper
modelIssueMapper
;
@Override
public
Integer
createModelIssue
(
ModelIssueDTO
modelIssueDTO
)
{
...
...
@@ -81,4 +91,37 @@ public class ModelIssueServiceImpl implements ModelIssueService {
public
ModelIssueDTO
getModelIssue
(
String
modelId
)
{
return
null
;
}
/**
* 服务列表导航树
* @author huxiuwu
* @date 2022/3/11
*
* @return pms.ocp.model.vo.ResponseVO
**/
@Override
public
ResponseVO
modelListNavigation
(
String
searchCondition
)
{
//查询模型和模型属性表列表
List
<
TreeNode
>
modelProperList
=
modelIssueMapper
.
selectModelAndModelGroup
(
searchCondition
);
if
(
CollectionUtil
.
isEmpty
(
modelProperList
)){
return
ResponseVO
.
error
(
CodeEnum
.
NO_DATA
);
}
List
<
TreeNode
>
modelGroupList
=
TreeUtils
.
build
(
modelProperList
);
//查询组织机构表
List
<
TreeNode
>
organList
=
modelIssueMapper
.
selectOrganData
();
//将分类放入各自所属于的组织机构下
organList
.
forEach
(
org
->{
modelGroupList
.
forEach
(
group
->{
if
(
org
.
getCompanyCode
().
equals
(
group
.
getCompanyCode
())){
if
(
org
.
getChildren
()
==
null
){
org
.
setChildren
(
new
LinkedList
<>());
}
org
.
getChildren
().
add
(
group
);
}
});
});
List
<
TreeNode
>
result
=
TreeUtils
.
build
(
organList
);
return
ResponseVO
.
ok
(
result
);
}
}
src/main/resources/mapper/ModelIssueMapper.xml
0 → 100644
View file @
aff46eb8
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.pms.ocp.mapper.ModelIssueMapper"
>
<resultMap
id=
"modelAndModelGroupMap"
type=
"com.pms.ocp.model.entity.TreeNode"
>
<result
column=
"model_group_code"
property=
"code"
/>
<result
column=
"model_group_pcode"
property=
"pCode"
/>
<result
column=
"group_company_code"
property=
"companyCode"
/>
<result
column=
"model_group_name"
property=
"name"
/>
<result
column=
"modelLevel"
property=
"belongLevel"
/>
<collection
property=
"children"
ofType=
"com.pms.ocp.model.entity.TreeNode"
>
<result
column=
"model_name"
property=
"name"
/>
<result
column=
"model_code"
property=
"code"
/>
<result
column=
"groupModelBelongLevel"
property=
"belongLevel"
/>
</collection>
</resultMap>
<select
id=
"selectModelAndModelGroup"
parameterType=
"java.lang.String"
resultMap=
"modelAndModelGroupMap"
>
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
from
ocp_model_group as omg
left join
ocp_model_base omb
on omg.model_group_code = omb.model_group_code
<if
test=
"_parameter != null and _parameter != '' "
>
where
model_name LIKE concat('%',#{searchCondition}::text ,'%')
</if>
</select>
<select
id=
"selectOrganData"
resultType=
"com.pms.ocp.model.entity.TreeNode"
>
select
1 AS belongLevel,
parent_id AS pCode,
org_name AS name ,
org_id AS code,
org_code AS companyCode
from
t_public_organization
where
trim(org_level) != ''
and
org_level::int4
<
= 4
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment