Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
framework-tools
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 5f308eb9
authored
Jul 08, 2024
by
henry
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加视图设计
1 parent
86b8f070
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
514 additions
and
0 deletions
arch-overall/src/main/java/org/arch/overall/controller/ArchiViewController.java
arch-overall/src/main/java/org/arch/overall/dto/ArchiViewDTO.java
arch-overall/src/main/java/org/arch/overall/entity/ArchiView.java
arch-overall/src/main/java/org/arch/overall/entity/ArchiViewEle.java
arch-overall/src/main/java/org/arch/overall/mapper/ArchiViewMapper.java
arch-overall/src/main/java/org/arch/overall/service/ArchiViewEleService.java
arch-overall/src/main/java/org/arch/overall/service/ArchiViewService.java
arch-overall/src/main/java/org/arch/overall/service/impl/ArchiViewEleImpl.java
arch-overall/src/main/java/org/arch/overall/service/impl/ArchiViewImpl.java
arch-overall/src/main/resources/mapper/ArchiViewMapper.xml
arch-overall/src/main/java/org/arch/overall/controller/ArchiViewController.java
0 → 100644
View file @
5f308eb
package
org
.
arch
.
overall
.
controller
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
org.arch.Result
;
import
org.arch.common.modules.archoverall.dto.BatchRemoveDTO
;
import
org.arch.log.annotation.OperLog
;
import
org.arch.log.entity.DescContent
;
import
org.arch.log.logenum.LogOperTypeEnum
;
import
org.arch.log.logenum.LogTypeEnum
;
import
org.arch.overall.dto.ArchiViewDTO
;
import
org.arch.overall.entity.ArchiView
;
import
org.arch.overall.service.ArchiViewService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 架构视图
*
* @author lizhen
* @date 2024/05/22
*/
@Api
(
value
=
"/archi-vw"
,
tags
=
{
"架构视图"
})
@RestController
@RequestMapping
(
"archi-vw"
)
@RequiredArgsConstructor
public
class
ArchiViewController
{
private
final
ArchiViewService
archiViewService
;
@PostMapping
(
value
=
"/"
)
@ApiOperation
(
DescContent
.
QUERY_LIST_VIEWS
)
@OperLog
(
value
=
LogOperTypeEnum
.
QUERY
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
moduleName
=
"架构视图设计"
,
operDes
=
"架构视图设计查询"
)
public
Result
gtArchiView
(
@RequestBody
ArchiViewDTO
dto
)
{
return
Result
.
success
(
archiViewService
.
gtArchiView
(
dto
,
PageDTO
.
of
(
dto
.
getCurrent
(),
dto
.
getPageSize
())));
}
@PostMapping
(
"/ad-archi-vw"
)
@ApiOperation
(
value
=
"新增架构视图"
)
@OperLog
(
value
=
LogOperTypeEnum
.
ADD
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
moduleName
=
"架构视图设计"
,
operDes
=
"新增架构视图"
)
public
Result
adArchiView
(
@RequestBody
ArchiView
vwDiss
)
{
return
Result
.
success
(
archiViewService
.
insert
(
vwDiss
));
}
@PostMapping
(
value
=
"/upd-archi-vw"
)
@ApiOperation
(
value
=
"修改视图配置"
)
@OperLog
(
value
=
LogOperTypeEnum
.
UPDATE
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
moduleName
=
"架构视图设计"
,
operDes
=
"修改视图配置"
)
public
Result
updArchiView
(
@RequestBody
ArchiView
vwDiss
)
{
return
Result
.
success
(
archiViewService
.
update
(
vwDiss
));
}
@PostMapping
(
value
=
"/del-vw"
)
@ApiOperation
(
"根据Id删除视图"
)
@OperLog
(
value
=
LogOperTypeEnum
.
DELETE
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
moduleName
=
"架构视图设计"
,
operDes
=
"根据Id删除视图"
)
public
Result
delArchiView
(
@RequestBody
ArchiView
vwDis
)
{
return
archiViewService
.
delArchiView
(
vwDis
)
?
Result
.
success
(
"删除成功"
)
:
Result
.
error
(
"删除失败"
);
}
@PostMapping
(
value
=
"/batchupd-vw"
)
@ApiOperation
(
value
=
"批量发布版本"
,
notes
=
"批量发布版本"
)
@OperLog
(
value
=
LogOperTypeEnum
.
OTHER
,
logTypeValue
=
LogTypeEnum
.
BUSI_LOG
,
moduleName
=
"架构视图设计"
,
operDes
=
"架构视图设计批量发布"
)
public
Result
updateVwDisBatch
(
@RequestBody
@Validated
BatchRemoveDTO
requestMap
)
{
return
Result
.
success
(
archiViewService
.
updEleBatch
(
requestMap
));
}
}
arch-overall/src/main/java/org/arch/overall/dto/ArchiViewDTO.java
0 → 100644
View file @
5f308eb
package
org
.
arch
.
overall
.
dto
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.arch.common.modules.archoverall.dto.BasePageEntity
;
import
java.util.List
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@ApiModel
(
value
=
"视图配置查询的传输对象"
,
description
=
"视图配置查询的传输对象"
)
public
class
ArchiViewDTO
extends
BasePageEntity
{
@ApiModelProperty
(
value
=
"总条数"
)
private
Integer
total
;
@ApiModelProperty
(
value
=
"主键"
)
@TableId
(
value
=
"view_id"
,
type
=
IdType
.
AUTO
)
private
Long
viewId
;
@ApiModelProperty
(
value
=
"架构视图名称"
)
private
String
viewName
;
@ApiModelProperty
(
value
=
"架构层次"
)
private
Long
archiLevelId
;
@ApiModelProperty
(
value
=
"架构归属"
)
private
Long
archiBelongId
;
@ApiModelProperty
(
value
=
"状态 0:已停用 1:已发布 2:暂存"
)
private
Integer
state
;
@ApiModelProperty
(
value
=
"架构阶段(1:总体架构;2:系统架构 3:概设架构 4:其他架构)"
)
private
Integer
archiStage
;
@ApiModelProperty
(
value
=
"适用范围(1:总体架构 2:系统架构 3:总体及系统架构)"
)
private
Integer
scope
;
@ApiModelProperty
(
value
=
"适用范围集合"
)
@TableField
(
exist
=
false
)
private
List
<
Long
>
scopeList
;
}
arch-overall/src/main/java/org/arch/overall/entity/ArchiView.java
0 → 100644
View file @
5f308eb
package
org
.
arch
.
overall
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
org.arch.common.BaseEntity
;
import
java.util.List
;
/**
* <p>
* 架构视图配置
* </p>
*
* @author lizhen
* @since 2023-12-06
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@Accessors
(
chain
=
true
)
@TableName
(
"archi_view"
)
@ApiModel
(
value
=
"ArchiView"
,
description
=
"架构视图配置"
)
public
class
ArchiView
extends
BaseEntity
{
@ApiModelProperty
(
value
=
"主键"
)
@TableId
(
value
=
"view_id"
,
type
=
IdType
.
AUTO
)
private
Long
viewId
;
@ApiModelProperty
(
value
=
"编码"
)
private
String
viewCode
;
@ApiModelProperty
(
value
=
"架构视图名称"
)
private
String
viewName
;
@ApiModelProperty
(
value
=
"架构层次"
)
private
Long
archiLevelId
;
@ApiModelProperty
(
value
=
"架构归属"
)
private
Long
archiBelongId
;
@ApiModelProperty
(
value
=
"架构视图模板 ID"
)
private
Integer
viewTemplateId
;
@ApiModelProperty
(
value
=
"版本信息"
)
private
String
version
;
@ApiModelProperty
(
value
=
"状态 0:已停用 1:已发布 2:暂存"
)
private
Integer
state
;
@ApiModelProperty
(
value
=
"描述"
)
private
String
content
;
@ApiModelProperty
(
value
=
"架构阶段(1:总体架构;2:系统架构)"
)
private
Integer
archiStage
;
@ApiModelProperty
(
value
=
"适用范围(1:总体架构 2:系统架构 3:总体及系统架构)"
)
private
Integer
scope
;
//-------------------------------- 以下为非数据库字段 --------------------------------
@ApiModelProperty
(
value
=
"架构视图 ID"
)
@TableField
(
exist
=
false
)
private
Long
archiViewId
;
@ApiModelProperty
(
value
=
"架构元素 ID"
)
@TableField
(
exist
=
false
)
private
String
archiEleId
;
@ApiModelProperty
(
value
=
"架构元素名称"
)
@TableField
(
exist
=
false
)
private
String
eleName
;
@ApiModelProperty
(
value
=
"架构元素关系 ID"
)
@TableField
(
exist
=
false
)
private
String
archiEleRelId
;
@ApiModelProperty
(
value
=
"架构元素关系名称"
)
@TableField
(
exist
=
false
)
private
String
relName
;
@ApiModelProperty
(
value
=
"1:元素范围 2:包含元素"
)
@TableField
(
exist
=
false
)
private
Long
type
;
@ApiModelProperty
(
value
=
"适用范围集合"
)
@TableField
(
exist
=
false
)
private
List
<
Long
>
scopeList
;
}
arch-overall/src/main/java/org/arch/overall/entity/ArchiViewEle.java
View file @
5f308eb
package
org
.
arch
.
overall
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -24,6 +25,7 @@ public class ArchiViewEle {
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"架构视图 ID"
)
@TableId
private
Long
archiViewId
;
@ApiModelProperty
(
value
=
"架构元素 ID"
)
...
...
arch-overall/src/main/java/org/arch/overall/mapper/ArchiViewMapper.java
0 → 100644
View file @
5f308eb
package
org
.
arch
.
overall
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.arch.overall.entity.ArchiView
;
import
java.util.List
;
public
interface
ArchiViewMapper
extends
BaseMapper
<
ArchiView
>
{
@Select
(
"select (SELECT CONCAT((SELECT REPLACE((select date_format(now(), '%Y-%m-%d')),CHAR(45),'')),'-V',(SELECT (select date_format(now(), '%Y')) - 2023 +1),'.',(select date_format(now(), '%m')),'.','1')) as version"
)
List
<
ArchiView
>
selectVer
();
List
<
ArchiView
>
maxVer
(
ArchiView
vwDiss
);
/**
* 获取版本
*
* @param id id
* @return {@link List }<{@link ArchiElement }>
*/
String
getVersion
(
@Param
(
"id"
)
Long
id
);
}
arch-overall/src/main/java/org/arch/overall/service/ArchiViewEleService.java
0 → 100644
View file @
5f308eb
package
org
.
arch
.
overall
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
org.arch.overall.entity.ArchiView
;
import
org.arch.overall.entity.ArchiViewEle
;
import
org.jetbrains.annotations.NotNull
;
import
org.springframework.transaction.annotation.Transactional
;
public
interface
ArchiViewEleService
extends
IService
<
ArchiViewEle
>
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
default
Boolean
createArchiViewEle
(
@NotNull
ArchiView
params
)
{
ArchiViewEle
archiViewEles
=
new
ArchiViewEle
();
archiViewEles
.
setArchiViewId
(
params
.
getViewId
());
archiViewEles
.
setArchiEleId
(
params
.
getArchiEleId
());
archiViewEles
.
setEleName
(
params
.
getEleName
());
archiViewEles
.
setArchiEleRelId
(
params
.
getArchiEleRelId
());
archiViewEles
.
setRelName
(
params
.
getRelName
());
archiViewEles
.
setType
(
params
.
getType
());
return
save
(
archiViewEles
);
}
}
arch-overall/src/main/java/org/arch/overall/service/ArchiViewService.java
0 → 100644
View file @
5f308eb
package
org
.
arch
.
overall
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
org.arch.overall.dto.ArchiViewDTO
;
import
org.arch.common.modules.archoverall.dto.BatchRemoveDTO
;
import
org.arch.overall.entity.ArchiView
;
public
interface
ArchiViewService
extends
IService
<
ArchiView
>
{
IPage
<
ArchiView
>
gtArchiView
(
ArchiViewDTO
dto
,
Page
<
ArchiView
>
page
);
Boolean
insert
(
ArchiView
vwDiss
);
Boolean
update
(
ArchiView
vwDiss
);
Boolean
updEleBatch
(
BatchRemoveDTO
requestMap
);
Boolean
delArchiView
(
ArchiView
vwDis
);
}
arch-overall/src/main/java/org/arch/overall/service/impl/ArchiViewEleImpl.java
0 → 100644
View file @
5f308eb
package
org
.
arch
.
overall
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.arch.overall.entity.ArchiViewEle
;
import
org.arch.overall.mapper.ArchiViewEleMapper
;
import
org.arch.overall.service.ArchiViewEleService
;
import
org.springframework.stereotype.Service
;
@Service
public
class
ArchiViewEleImpl
extends
ServiceImpl
<
ArchiViewEleMapper
,
ArchiViewEle
>
implements
ArchiViewEleService
{
}
arch-overall/src/main/java/org/arch/overall/service/impl/ArchiViewImpl.java
0 → 100644
View file @
5f308eb
package
org
.
arch
.
overall
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.lang.Assert
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.alibaba.cloud.commons.lang.StringUtils
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.arch.common.modules.archoverall.dto.BatchRemoveDTO
;
import
org.arch.overall.dto.ArchiViewDTO
;
import
org.arch.enums.ArchiStateEnum
;
import
org.arch.overall.entity.ArchiView
;
import
org.arch.overall.entity.ArchiViewEle
;
import
org.arch.overall.mapper.ArchiViewEleMapper
;
import
org.arch.overall.mapper.ArchiViewMapper
;
import
org.arch.overall.service.ArchiViewEleService
;
import
org.arch.overall.service.ArchiViewService
;
import
org.arch.utils.VersionUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Service
public
class
ArchiViewImpl
extends
ServiceImpl
<
ArchiViewMapper
,
ArchiView
>
implements
ArchiViewService
{
@Resource
private
ArchiViewMapper
archiViewMapper
;
@Resource
private
ArchiViewEleMapper
archiViewEleMapper
;
@Autowired
private
ArchiViewService
archiViewService
;
@Autowired
private
ArchiViewEleService
archiViewEleService
;
@Override
public
IPage
<
ArchiView
>
gtArchiView
(
ArchiViewDTO
dto
,
Page
<
ArchiView
>
page
)
{
LambdaQueryWrapper
<
ArchiView
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
like
(!
StrUtil
.
isBlank
(
dto
.
getViewName
()),
ArchiView:
:
getViewName
,
dto
.
getViewName
())
.
eq
(
dto
.
getArchiBelongId
()
!=
null
,
ArchiView:
:
getArchiBelongId
,
dto
.
getArchiBelongId
())
.
eq
(
dto
.
getArchiLevelId
()
!=
null
,
ArchiView:
:
getArchiLevelId
,
dto
.
getArchiLevelId
())
.
eq
(
dto
.
getState
()
!=
null
,
ArchiView:
:
getState
,
dto
.
getState
())
.
eq
(
Objects
.
nonNull
(
dto
.
getArchiStage
()),
ArchiView:
:
getArchiStage
,
dto
.
getArchiStage
());
IPage
<
ArchiView
>
viewPage
=
archiViewMapper
.
selectPage
(
page
,
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
viewPage
.
getRecords
()))
{
List
<
Long
>
viewIdList
=
viewPage
.
getRecords
().
stream
().
map
(
ArchiView:
:
getViewId
).
collect
(
Collectors
.
toList
());
List
<
ArchiViewEle
>
viewEles
=
archiViewEleMapper
.
selectList
(
new
QueryWrapper
<
ArchiViewEle
>().
lambda
().
in
(
ArchiViewEle:
:
getArchiViewId
,
viewIdList
));
Map
<
Long
,
ArchiViewEle
>
viewEleByViewIdMap
=
viewEles
.
stream
().
collect
(
Collectors
.
toMap
(
ArchiViewEle:
:
getArchiViewId
,
Function
.
identity
()));
viewPage
.
getRecords
().
forEach
(
view
->
{
ArchiViewEle
viewEle
=
viewEleByViewIdMap
.
get
(
view
.
getViewId
());
if
(
viewEle
!=
null
)
{
view
.
setEleName
(
viewEle
.
getEleName
());
view
.
setRelName
(
viewEle
.
getRelName
());
view
.
setArchiEleId
(
viewEle
.
getArchiEleId
());
view
.
setArchiEleRelId
(
viewEle
.
getArchiEleRelId
());
}
});
}
return
viewPage
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
insert
(
ArchiView
params
)
{
int
state
=
ArchiStateEnum
.
PUBLISHED
.
getCode
();
params
.
setViewCode
(
IdUtil
.
fastSimpleUUID
());
params
.
setDelFlag
(
0
);
params
.
insert
();
if
(
params
.
getState
()
==
state
)
{
params
.
setVersion
(
VersionUtil
.
getNextVersion
(
archiViewMapper
.
getVersion
(
params
.
getViewId
())));
params
.
setState
(
state
);
}
params
.
updateById
();
return
archiViewEleService
.
createArchiViewEle
(
params
);
}
@Override
public
Boolean
update
(
ArchiView
vwDiss
)
{
Integer
state
=
vwDiss
.
getState
();
Date
time
=
Calendar
.
getInstance
().
getTime
();
if
(
vwDiss
.
getViewId
()
==
null
)
{
throw
new
IllegalArgumentException
(
"修改视图主键不能为空!"
);
}
// 发布生成新版本,须传元素名称
LambdaQueryWrapper
<
ArchiView
>
queryWrapper
=
Wrappers
.
lambdaQuery
(
ArchiView
.
class
)
.
select
()
.
eq
(
StringUtils
.
isNotBlank
(
vwDiss
.
getViewName
()),
ArchiView:
:
getViewName
,
vwDiss
.
getViewName
())
.
eq
(
Objects
.
nonNull
(
vwDiss
.
getViewId
()),
ArchiView:
:
getViewId
,
vwDiss
.
getViewId
());
List
<
ArchiView
>
lists
=
baseMapper
.
selectList
(
queryWrapper
);
if
(
state
==
1
&&
!
lists
.
isEmpty
()
&&
lists
.
get
(
0
).
getVersion
()
==
null
)
{
List
<
ArchiView
>
list
=
archiViewMapper
.
selectVer
();
for
(
ArchiView
view
:
list
)
{
if
(
view
.
getVersion
()
!=
null
)
{
vwDiss
.
setVersion
(
view
.
getVersion
());
break
;
}
}
}
else
if
(
state
==
1
&&
!
lists
.
isEmpty
()
&&
lists
.
get
(
0
).
getVersion
()
!=
null
)
{
LambdaQueryWrapper
<
ArchiView
>
wrapper
=
Wrappers
.
lambdaQuery
(
ArchiView
.
class
)
.
select
()
.
eq
(
StrUtil
.
isNotBlank
(
vwDiss
.
getViewName
()),
ArchiView:
:
getViewName
,
vwDiss
.
getViewName
())
.
eq
(
Objects
.
nonNull
(
vwDiss
.
getArchiBelongId
()),
ArchiView:
:
getArchiBelongId
,
vwDiss
.
getArchiBelongId
())
.
eq
(
Objects
.
nonNull
(
vwDiss
.
getArchiStage
()),
ArchiView:
:
getArchiStage
,
vwDiss
.
getArchiStage
())
.
eq
(
Objects
.
nonNull
(
vwDiss
.
getArchiLevelId
()),
ArchiView:
:
getArchiLevelId
,
vwDiss
.
getArchiLevelId
())
.
ne
(
Objects
.
nonNull
(
vwDiss
.
getViewId
()),
ArchiView:
:
getViewId
,
vwDiss
.
getViewId
());
List
<
ArchiView
>
viewList
=
baseMapper
.
selectList
(
wrapper
);
if
(!
CollectionUtils
.
isEmpty
(
viewList
))
{
viewList
.
forEach
(
e
->
{
e
.
setState
(
0
);
baseMapper
.
updateById
(
e
);
});
}
List
<
ArchiView
>
maxVer
=
archiViewMapper
.
maxVer
(
vwDiss
);
if
(!
CollectionUtils
.
isEmpty
(
maxVer
))
{
String
lastMaxVer
=
maxVer
.
get
(
0
).
getVersion
();
String
ver
=
VersionUtil
.
getNextVersion
(
lastMaxVer
);
vwDiss
.
setVersion
(
ver
);
}
}
vwDiss
.
setLastUpdateTime
(
time
);
vwDiss
.
setCreateTime
(
null
);
archiViewService
.
updateById
(
vwDiss
);
ArchiViewEle
archiViewEles
=
new
ArchiViewEle
();
LambdaQueryWrapper
<
ArchiViewEle
>
querywarpper
=
new
LambdaQueryWrapper
();
querywarpper
.
eq
(
ArchiViewEle:
:
getArchiViewId
,
vwDiss
.
getViewId
());
List
<
ArchiViewEle
>
list
=
archiViewEleService
.
list
(
querywarpper
);
if
(
list
.
size
()
>
0
)
{
LambdaUpdateWrapper
<
ArchiViewEle
>
wrapper
=
new
LambdaUpdateWrapper
();
wrapper
.
eq
(
ArchiViewEle:
:
getArchiViewId
,
vwDiss
.
getViewId
());
wrapper
.
set
(
ArchiViewEle:
:
getEleName
,
vwDiss
.
getEleName
());
wrapper
.
set
(
ArchiViewEle:
:
getArchiEleId
,
vwDiss
.
getArchiEleId
());
wrapper
.
set
(
ArchiViewEle:
:
getArchiEleRelId
,
vwDiss
.
getArchiEleRelId
());
wrapper
.
set
(
ArchiViewEle:
:
getRelName
,
vwDiss
.
getRelName
());
wrapper
.
set
(
ArchiViewEle:
:
getType
,
vwDiss
.
getType
());
archiViewEleService
.
update
(
wrapper
);
}
else
{
archiViewEles
.
setArchiViewId
(
vwDiss
.
getViewId
());
archiViewEles
.
setArchiEleId
(
vwDiss
.
getArchiEleId
());
archiViewEles
.
setEleName
(
vwDiss
.
getEleName
());
archiViewEles
.
setArchiEleRelId
(
vwDiss
.
getArchiEleRelId
());
archiViewEles
.
setRelName
(
vwDiss
.
getRelName
());
archiViewEles
.
setType
(
vwDiss
.
getType
());
archiViewEleService
.
save
(
archiViewEles
);
}
return
true
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
updEleBatch
(
BatchRemoveDTO
requestMap
)
{
requestMap
.
getIds
().
forEach
(
id
->
{
ArchiView
archiView
=
archiViewMapper
.
selectById
(
id
);
Assert
.
notNull
(
archiView
,
"未找到对应视图"
);
Assert
.
isFalse
(
1
==
archiView
.
getState
(),
"当前状态下不可发布"
);
archiView
.
setVersion
(
VersionUtil
.
getNextVersion
(
archiViewMapper
.
getVersion
(
id
)));
archiView
.
setState
(
ArchiStateEnum
.
PUBLISHED
.
getCode
());
archiView
.
updateById
();
});
return
Boolean
.
TRUE
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
delArchiView
(
ArchiView
vwDis
)
{
ArchiView
view
=
archiViewService
.
getById
(
vwDis
.
getViewId
());
Assert
.
notNull
(
view
,
"未找到对应视图"
);
Assert
.
isFalse
(
ArchiStateEnum
.
PUBLISHED
.
getCode
()
==
view
.
getState
(),
"已发布的视图不可删除"
);
return
removeById
(
vwDis
.
getViewId
());
}
}
arch-overall/src/main/resources/mapper/ArchiViewMapper.xml
0 → 100644
View file @
5f308eb
<?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=
"org.arch.overall.mapper.ArchiViewMapper"
>
<select
id=
"maxVer"
resultType=
"org.arch.overall.entity.ArchiView"
>
SELECT a.version
FROM archi_view a
<where>
<if
test=
"viewName != null and viewName != ''"
>
and a.view_name = #{viewName}
</if>
<if
test=
"archiBelongId != null "
>
and a.archi_belong_id = #{archiBelongId}
</if>
<if
test=
"archiStage != null "
>
and a.archi_stage = #{archiStage}
</if>
<if
test=
"archiLevelId != null "
>
and a.archi_level_id = #{archiLevelId}
</if>
and a.del_flag = 0
</where>
ORDER BY CAST(SUBSTRING_INDEX(version, '.', -1) AS DECIMAL) DESC
LIMIT 1
</select>
<!--获取最新版本-->
<select
id=
"getVersion"
resultType=
"java.lang.String"
>
set @i := (
<include
refid=
"org.arch.overall.mapper.VersionInitMapper.versionInit"
/>
);
select ifnull(version, @i) from archi_view where view_id = #{id} for update
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
Attach a file
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 post a comment