Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
slm-bi
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
林锐标
slm-bi
Commits
e691bc53
Commit
e691bc53
authored
Apr 17, 2021
by
linruibiao
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into 'master'
Develop See merge request
!1
parents
a0c723fd
0e76b1ac
Hide whitespace changes
Inline
Side-by-side
Showing
99 changed files
with
4671 additions
and
547 deletions
+4671
-547
pom.xml
pom.xml
+17
-10
CommonConstants.java
...ava/com/syc/slm/common/core/constant/CommonConstants.java
+9
-12
SlmConstants.java
...n/java/com/syc/slm/common/core/constant/SlmConstants.java
+33
-0
NetResponseUtils.java
...n/java/com/syc/slm/common/core/util/NetResponseUtils.java
+46
-0
R.java
src/main/java/com/syc/slm/common/core/util/R.java
+30
-1
RestTemplateUtils.java
.../java/com/syc/slm/common/core/util/RestTemplateUtils.java
+662
-0
ServletUtils.java
src/main/java/com/syc/slm/common/core/util/ServletUtils.java
+46
-0
InfluxdbConfig.java
src/main/java/com/syc/slm/slmbi/config/InfluxdbConfig.java
+0
-24
MybatisPlusConfig.java
...main/java/com/syc/slm/slmbi/config/MybatisPlusConfig.java
+12
-0
SysMetaObjectHandler.java
...n/java/com/syc/slm/slmbi/config/SysMetaObjectHandler.java
+105
-0
BaseRestController.java
...java/com/syc/slm/slmbi/controller/BaseRestController.java
+118
-0
DeptController.java
...ain/java/com/syc/slm/slmbi/controller/DeptController.java
+9
-6
InstrumentPanelConfigController.java
...slm/slmbi/controller/InstrumentPanelConfigController.java
+13
-9
InstrumentPanelController.java
...m/syc/slm/slmbi/controller/InstrumentPanelController.java
+41
-26
InstrumentPanelGroupController.java
.../slm/slmbi/controller/InstrumentPanelGroupController.java
+22
-26
InstrumentPanelPermissionController.java
...slmbi/controller/InstrumentPanelPermissionController.java
+35
-17
InstrumentPanelTreeController.java
...c/slm/slmbi/controller/InstrumentPanelTreeController.java
+112
-0
PositionController.java
...java/com/syc/slm/slmbi/controller/PositionController.java
+9
-6
TokenController.java
...in/java/com/syc/slm/slmbi/controller/TokenController.java
+54
-0
UserController.java
...ain/java/com/syc/slm/slmbi/controller/UserController.java
+9
-7
VariableController.java
...java/com/syc/slm/slmbi/controller/VariableController.java
+68
-22
InstrumentPanelConfigMapper.java
...va/com/syc/slm/slmbi/dao/InstrumentPanelConfigMapper.java
+15
-0
InstrumentPanelDraftMapper.java
...ava/com/syc/slm/slmbi/dao/InstrumentPanelDraftMapper.java
+21
-0
InstrumentPanelGroupMapper.java
...ava/com/syc/slm/slmbi/dao/InstrumentPanelGroupMapper.java
+23
-0
InstrumentPanelMapper.java
...ain/java/com/syc/slm/slmbi/dao/InstrumentPanelMapper.java
+16
-0
InstrumentPanelPermissionMapper.java
...om/syc/slm/slmbi/dao/InstrumentPanelPermissionMapper.java
+15
-0
InstrumentPanelTreeMapper.java
...java/com/syc/slm/slmbi/dao/InstrumentPanelTreeMapper.java
+22
-0
CreateInstrumentPanelGroupDTO.java
.../com/syc/slm/slmbi/dto/CreateInstrumentPanelGroupDTO.java
+19
-0
CustomPermissionDTO.java
src/main/java/com/syc/slm/slmbi/dto/CustomPermissionDTO.java
+24
-0
InstrumentPanelAssemblyDTO.java
...ava/com/syc/slm/slmbi/dto/InstrumentPanelAssemblyDTO.java
+22
-0
InstrumentPanelConfigDTO.java
.../java/com/syc/slm/slmbi/dto/InstrumentPanelConfigDTO.java
+11
-4
InstrumentPanelGroupDTO.java
...n/java/com/syc/slm/slmbi/dto/InstrumentPanelGroupDTO.java
+2
-2
InstrumentPanelPermissionDTO.java
...a/com/syc/slm/slmbi/dto/InstrumentPanelPermissionDTO.java
+22
-20
QueryInstrumentPanelDTO.java
...n/java/com/syc/slm/slmbi/dto/QueryInstrumentPanelDTO.java
+13
-11
QueryPageDTO.java
src/main/java/com/syc/slm/slmbi/dto/QueryPageDTO.java
+20
-0
RealTimeVariableDTO.java
src/main/java/com/syc/slm/slmbi/dto/RealTimeVariableDTO.java
+3
-2
SaveInstrumentPanelDTO.java
...in/java/com/syc/slm/slmbi/dto/SaveInstrumentPanelDTO.java
+12
-0
VariableDTO.java
src/main/java/com/syc/slm/slmbi/dto/VariableDTO.java
+2
-1
BaseEntity.java
src/main/java/com/syc/slm/slmbi/entity/BaseEntity.java
+40
-9
CurrentUser.java
src/main/java/com/syc/slm/slmbi/entity/CurrentUser.java
+18
-0
InstrumentPanel.java
src/main/java/com/syc/slm/slmbi/entity/InstrumentPanel.java
+15
-5
InstrumentPanelConfig.java
.../java/com/syc/slm/slmbi/entity/InstrumentPanelConfig.java
+3
-1
InstrumentPanelDraft.java
...n/java/com/syc/slm/slmbi/entity/InstrumentPanelDraft.java
+45
-0
InstrumentPanelGroup.java
...n/java/com/syc/slm/slmbi/entity/InstrumentPanelGroup.java
+2
-0
InstrumentPanelPermission.java
...a/com/syc/slm/slmbi/entity/InstrumentPanelPermission.java
+45
-0
InstrumentPanelTree.java
...in/java/com/syc/slm/slmbi/entity/InstrumentPanelTree.java
+51
-0
AccessType.java
src/main/java/com/syc/slm/slmbi/enums/AccessType.java
+23
-0
CustomPermissionType.java
...in/java/com/syc/slm/slmbi/enums/CustomPermissionType.java
+23
-0
NodeType.java
src/main/java/com/syc/slm/slmbi/enums/NodeType.java
+25
-0
PublishedStatus.java
src/main/java/com/syc/slm/slmbi/enums/PublishedStatus.java
+25
-0
StatisticsType.java
src/main/java/com/syc/slm/slmbi/enums/StatisticsType.java
+26
-0
SysException.java
src/main/java/com/syc/slm/slmbi/exception/SysException.java
+96
-0
Action0.java
src/main/java/com/syc/slm/slmbi/function/Action0.java
+15
-0
Action1.java
src/main/java/com/syc/slm/slmbi/function/Action1.java
+16
-0
Action2.java
src/main/java/com/syc/slm/slmbi/function/Action2.java
+16
-0
Function2.java
src/main/java/com/syc/slm/slmbi/function/Function2.java
+16
-0
SysExceptionHandler.java
...n/java/com/syc/slm/slmbi/handler/SysExceptionHandler.java
+35
-0
DeptService.java
src/main/java/com/syc/slm/slmbi/service/DeptService.java
+7
-3
InfluxService.java
src/main/java/com/syc/slm/slmbi/service/InfluxService.java
+0
-168
InstrumentPanelConfigService.java
...m/syc/slm/slmbi/service/InstrumentPanelConfigService.java
+63
-4
InstrumentPanelDraftService.java
...om/syc/slm/slmbi/service/InstrumentPanelDraftService.java
+48
-0
InstrumentPanelGroupService.java
...om/syc/slm/slmbi/service/InstrumentPanelGroupService.java
+13
-14
InstrumentPanelPermissionService.java
...c/slm/slmbi/service/InstrumentPanelPermissionService.java
+56
-8
InstrumentPanelService.java
...ava/com/syc/slm/slmbi/service/InstrumentPanelService.java
+29
-6
InstrumentPanelTreeService.java
...com/syc/slm/slmbi/service/InstrumentPanelTreeService.java
+118
-0
PositionService.java
src/main/java/com/syc/slm/slmbi/service/PositionService.java
+3
-1
UserService.java
src/main/java/com/syc/slm/slmbi/service/UserService.java
+6
-2
VariableService.java
src/main/java/com/syc/slm/slmbi/service/VariableService.java
+7
-2
DeptServiceImpl.java
.../java/com/syc/slm/slmbi/service/impl/DeptServiceImpl.java
+21
-3
InstrumentPanelConfigServiceImpl.java
.../slmbi/service/impl/InstrumentPanelConfigServiceImpl.java
+333
-6
InstrumentPanelDraftServiceImpl.java
...m/slmbi/service/impl/InstrumentPanelDraftServiceImpl.java
+74
-0
InstrumentPanelGroupServiceImpl.java
...m/slmbi/service/impl/InstrumentPanelGroupServiceImpl.java
+195
-17
InstrumentPanelPermissionImpl.java
...slm/slmbi/service/impl/InstrumentPanelPermissionImpl.java
+212
-13
InstrumentPanelServiceImpl.java
...yc/slm/slmbi/service/impl/InstrumentPanelServiceImpl.java
+247
-15
InstrumentPanelTreeServiceImpl.java
...lm/slmbi/service/impl/InstrumentPanelTreeServiceImpl.java
+425
-0
PositionServiceImpl.java
...a/com/syc/slm/slmbi/service/impl/PositionServiceImpl.java
+19
-2
UserServiceImpl.java
.../java/com/syc/slm/slmbi/service/impl/UserServiceImpl.java
+18
-3
VariableServiceImpl.java
...a/com/syc/slm/slmbi/service/impl/VariableServiceImpl.java
+86
-5
CustomPermissionVo.java
src/main/java/com/syc/slm/slmbi/vo/CustomPermissionVo.java
+25
-0
DeptVo.java
src/main/java/com/syc/slm/slmbi/vo/DeptVo.java
+6
-2
InstrumentPanelConfigVo.java
...in/java/com/syc/slm/slmbi/vo/InstrumentPanelConfigVo.java
+6
-1
InstrumentPanelGroupVo.java
...ain/java/com/syc/slm/slmbi/vo/InstrumentPanelGroupVo.java
+2
-4
InstrumentPanelPermissionVo.java
...ava/com/syc/slm/slmbi/vo/InstrumentPanelPermissionVo.java
+11
-6
InstrumentPanelVo.java
src/main/java/com/syc/slm/slmbi/vo/InstrumentPanelVo.java
+4
-2
PanelTreeNodeType.java
src/main/java/com/syc/slm/slmbi/vo/PanelTreeNodeType.java
+16
-0
PanelTreeNodeVo.java
src/main/java/com/syc/slm/slmbi/vo/PanelTreeNodeVo.java
+9
-9
PositionVo.java
src/main/java/com/syc/slm/slmbi/vo/PositionVo.java
+9
-1
UserTreeVo.java
src/main/java/com/syc/slm/slmbi/vo/UserTreeVo.java
+20
-0
VariableDeviceVo.java
src/main/java/com/syc/slm/slmbi/vo/VariableDeviceVo.java
+20
-3
VariableVo.java
src/main/java/com/syc/slm/slmbi/vo/VariableVo.java
+26
-15
application-dev.yml
src/main/resources/application-dev.yml
+15
-0
application-local.yml
src/main/resources/application-local.yml
+15
-0
application.yml
src/main/resources/application.yml
+10
-11
InstrumentPanelConfigMapper.xml
...ources/mapper/mysql/panel/InstrumentPanelConfigMapper.xml
+22
-0
InstrumentPanelDraftMapper.xml
...sources/mapper/mysql/panel/InstrumentPanelDraftMapper.xml
+55
-0
InstrumentPanelGroupMapper.xml
...sources/mapper/mysql/panel/InstrumentPanelGroupMapper.xml
+49
-0
InstrumentPanelMapper.xml
...in/resources/mapper/mysql/panel/InstrumentPanelMapper.xml
+66
-0
InstrumentPanelPermissionMapper.xml
...es/mapper/mysql/panel/InstrumentPanelPermissionMapper.xml
+25
-0
InstrumentPanelTreeMapper.xml
...esources/mapper/mysql/panel/InstrumentPanelTreeMapper.xml
+33
-0
No files found.
pom.xml
View file @
e691bc53
...
@@ -47,10 +47,10 @@
...
@@ -47,10 +47,10 @@
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-jdbc
</artifactId>
<artifactId>
spring-boot-starter-data-jdbc
</artifactId>
</dependency>
</dependency>
<
dependency
>
<
!--<dependency>--
>
<
groupId>
org.springframework.boot
</groupId
>
<
!--<groupId>org.springframework.boot</groupId>--
>
<
artifactId>
spring-boot-starter-data-jpa
</artifactId
>
<
!--<artifactId>spring-boot-starter-data-jpa</artifactId>--
>
<
/dependency
>
<
!--</dependency>--
>
<dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
...
@@ -96,12 +96,12 @@
...
@@ -96,12 +96,12 @@
<artifactId>
spring-boot-starter-test
</artifactId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
<scope>
test
</scope>
</dependency>
</dependency>
<!--
influxdb架包
-->
<!--
<!– influxdb架包 –>
-->
<
dependency
>
<
!--<dependency>--
>
<
groupId>
org.influxdb
</groupId
>
<
!--<groupId>org.influxdb</groupId>--
>
<
artifactId>
influxdb-java
</artifactId
>
<
!--<artifactId>influxdb-java</artifactId>--
>
<
version>
${influxdb-java.version}
</version
>
<
!--<version>${influxdb-java.version}</version>--
>
<
/dependency
>
<
!--</dependency>--
>
<dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
<artifactId>
httpclient
</artifactId>
...
@@ -195,6 +195,13 @@
...
@@ -195,6 +195,13 @@
<skip>
true
</skip>
<skip>
true
</skip>
</configuration>
</configuration>
</plugin>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<configuration>
<executable>
true
</executable>
</configuration>
</plugin>
</plugins>
</plugins>
</build>
</build>
...
...
src/main/java/com/syc/slm/common/core/constant/CommonConstants.java
View file @
e691bc53
...
@@ -25,17 +25,14 @@ package com.syc.slm.common.core.constant;
...
@@ -25,17 +25,14 @@ package com.syc.slm.common.core.constant;
*/
*/
public
interface
CommonConstants
{
public
interface
CommonConstants
{
/**
/**
* 成功标记
* 成功标记
*/
*/
Integer
SUCCESS
=
0
;
Integer
SUCCESS
=
0
;
/**
/**
* 失败标记
* 失败标记
*/
*/
Integer
FAIL
=
1
;
Integer
FAIL
=
1
;
}
}
src/main/java/com/syc/slm/common/core/constant/SlmConstants.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
common
.
core
.
constant
;
import
com.google.gson.FieldNamingPolicy
;
import
com.google.gson.Gson
;
import
com.google.gson.GsonBuilder
;
/**
* slm-bi
* 业务常量
*
* @author : lin
* @date : 2021-04-06 11:14
**/
public
final
class
SlmConstants
{
public
static
Gson
gson
=
new
GsonBuilder
()
.
setDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
create
();
public
static
Gson
gsonLowerCaseWithUnderscores
=
new
GsonBuilder
()
.
setDateFormat
(
"yyyy-MM-dd HH:mm:ss"
).
setFieldNamingPolicy
(
FieldNamingPolicy
.
LOWER_CASE_WITH_UNDERSCORES
).
create
();
/**
* 启用
*/
public
static
final
Integer
DATA_VALID
=
1
;
/**
* 禁用
*/
public
static
final
Integer
DATA_INVALID
=
0
;
/**
* 删除
*/
public
static
final
Integer
DATA_DELETED
=
-
1
;
}
src/main/java/com/syc/slm/common/core/util/NetResponseUtils.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
common
.
core
.
util
;
import
com.syc.slm.slmbi.exception.SysException
;
import
com.syc.slm.slmbi.function.Action0
;
import
java.util.function.Supplier
;
/**
* slm-bi
* 统一方法调用返回
*
* @author : lin
* @date : 2021-04-06 09:39
**/
public
final
class
NetResponseUtils
{
public
static
<
T
>
R
<
T
>
call
(
Supplier
<
T
>
x
)
{
try
{
return
R
.
ok
(
x
.
get
());
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
if
(
ex
instanceof
SysException
)
{
SysException
e
=
(
SysException
)
ex
;
return
R
.
failed
(
e
.
getMsg
());
}
return
R
.
failed
(
"出错啦请联系管理员"
,
ex
.
toString
());
}
}
public
static
R
<
Object
>
call
(
Action0
x
)
{
try
{
x
.
call
();
return
R
.
ok
();
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
if
(
ex
instanceof
SysException
)
{
SysException
e
=
(
SysException
)
ex
;
return
R
.
failed
(
e
.
getMsg
());
}
return
R
.
bad
(
"出错啦请联系管理员"
,
ex
.
toString
());
}
}
}
src/main/java/com/syc/slm/common/core/util/R.java
View file @
e691bc53
...
@@ -20,11 +20,14 @@
...
@@ -20,11 +20,14 @@
package
com
.
syc
.
slm
.
common
.
core
.
util
;
package
com
.
syc
.
slm
.
common
.
core
.
util
;
import
com.syc.slm.common.core.constant.CommonConstants
;
import
com.syc.slm.common.core.constant.CommonConstants
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.slmbi.exception.SysException
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.*
;
import
lombok.*
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
javax.sound.midi.SysexMessage
;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
...
@@ -53,6 +56,11 @@ public class R<T> implements Serializable {
...
@@ -53,6 +56,11 @@ public class R<T> implements Serializable {
@ApiModelProperty
(
value
=
"返回信息"
)
@ApiModelProperty
(
value
=
"返回信息"
)
private
String
msg
;
private
String
msg
;
@Getter
@Setter
@ApiModelProperty
(
value
=
"调式异常"
)
private
String
debugMsg
;
@Getter
@Getter
@Setter
@Setter
@ApiModelProperty
(
value
=
"数据"
)
@ApiModelProperty
(
value
=
"数据"
)
...
@@ -77,7 +85,9 @@ public class R<T> implements Serializable {
...
@@ -77,7 +85,9 @@ public class R<T> implements Serializable {
public
static
<
T
>
R
<
T
>
failed
(
String
msg
)
{
public
static
<
T
>
R
<
T
>
failed
(
String
msg
)
{
return
restResult
(
null
,
CommonConstants
.
FAIL
,
msg
);
return
restResult
(
null
,
CommonConstants
.
FAIL
,
msg
);
}
}
public
static
<
T
>
R
<
T
>
failed
(
String
msg
,
String
debugMsg
)
{
return
restResult
(
null
,
CommonConstants
.
FAIL
,
msg
,
debugMsg
);
}
public
static
<
T
>
R
<
T
>
failed
(
T
data
)
{
public
static
<
T
>
R
<
T
>
failed
(
T
data
)
{
return
restResult
(
data
,
CommonConstants
.
FAIL
,
null
);
return
restResult
(
data
,
CommonConstants
.
FAIL
,
null
);
}
}
...
@@ -86,6 +96,10 @@ public class R<T> implements Serializable {
...
@@ -86,6 +96,10 @@ public class R<T> implements Serializable {
return
restResult
(
data
,
CommonConstants
.
FAIL
,
msg
);
return
restResult
(
data
,
CommonConstants
.
FAIL
,
msg
);
}
}
public
static
<
T
>
R
<
T
>
bad
(
String
msg
,
String
debugMsg
)
{
return
failed
(
msg
,
debugMsg
);
}
private
static
<
T
>
R
<
T
>
restResult
(
T
data
,
int
code
,
String
msg
)
{
private
static
<
T
>
R
<
T
>
restResult
(
T
data
,
int
code
,
String
msg
)
{
R
<
T
>
apiResult
=
new
R
<>();
R
<
T
>
apiResult
=
new
R
<>();
apiResult
.
setCode
(
code
);
apiResult
.
setCode
(
code
);
...
@@ -93,5 +107,20 @@ public class R<T> implements Serializable {
...
@@ -93,5 +107,20 @@ public class R<T> implements Serializable {
apiResult
.
setMsg
(
msg
);
apiResult
.
setMsg
(
msg
);
return
apiResult
;
return
apiResult
;
}
}
private
static
<
T
>
R
<
T
>
restResult
(
T
data
,
int
code
,
String
msg
,
String
debugMsg
)
{
R
<
T
>
apiResult
=
new
R
<>();
apiResult
.
setCode
(
code
);
apiResult
.
setData
(
data
);
apiResult
.
setMsg
(
msg
);
apiResult
.
setDebugMsg
(
debugMsg
);
return
apiResult
;
}
public
T
detach
(){
if
(
this
.
code
==
1
){
throw
new
SysException
(
this
.
msg
);
}
return
data
;
}
}
}
src/main/java/com/syc/slm/common/core/util/RestTemplateUtils.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
common
.
core
.
util
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.slmbi.exception.SysException
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.client.RestTemplate
;
import
java.lang.reflect.Type
;
import
java.util.Map
;
/**
* slm-bi
* RestTemplate 远程调用工具类
* @author : lin
* @date : 2021-04-13 10:15
**/
public
final
class
RestTemplateUtils
{
private
static
final
RestTemplate
REST_TEMPLATE
=
new
RestTemplate
();
//#region ----------------------------------GET-------------------------------------------------------
/**
* GET请求调用方式
*
* @param url 请求URL
* @param responseType 返回对象类型
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
get
(
String
url
,
Class
<
T
>
responseType
)
{
return
REST_TEMPLATE
.
getForEntity
(
url
,
responseType
);
}
/**
* GET请求调用方式
*
* @param url 请求URL
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
get
(
String
url
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
return
REST_TEMPLATE
.
getForEntity
(
url
,
responseType
,
uriVariables
);
}
/**
* GET请求调用方式
*
* @param url 请求URL
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
get
(
String
url
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
return
REST_TEMPLATE
.
getForEntity
(
url
,
responseType
,
uriVariables
);
}
/**
* 带请求头的GET请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
get
(
String
url
,
Map
<
String
,
String
>
headers
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
get
(
url
,
httpHeaders
,
responseType
,
uriVariables
);
}
public
static
<
TResult
>
TResult
get
(
String
url
,
Map
<
String
,
String
>
headerMap
,
final
Type
resultType
,
Map
<
String
,
?>
uriVariables
)
{
try
{
ResponseEntity
<
String
>
response
=
get
(
url
,
headerMap
,
String
.
class
,
uriVariables
);
if
(
response
.
getStatusCodeValue
()==
200
){
if
(
resultType
.
equals
(
String
.
class
))
{
return
(
TResult
)
response
.
getBody
();
}
return
SlmConstants
.
gson
.
fromJson
(
response
.
getBody
(),
resultType
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
SysException
(
"出错啦,请联系管理员"
,
e
.
toString
());
}
return
null
;
}
/**
* 带请求头的GET请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
get
(
String
url
,
HttpHeaders
headers
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpEntity
<?>
requestEntity
=
new
HttpEntity
<>(
headers
);
return
exchange
(
url
,
HttpMethod
.
GET
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 带请求头的GET请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
get
(
String
url
,
Map
<
String
,
String
>
headers
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
get
(
url
,
httpHeaders
,
responseType
,
uriVariables
);
}
/**
* 带请求头的GET请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
get
(
String
url
,
HttpHeaders
headers
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpEntity
<?>
requestEntity
=
new
HttpEntity
<>(
headers
);
return
exchange
(
url
,
HttpMethod
.
GET
,
requestEntity
,
responseType
,
uriVariables
);
}
//#endregion
//#region ----------------------------------POST-------------------------------------------------------
/**
* POST请求调用方式
*
* @param url 请求URL
* @param responseType 返回对象类型
* @return
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
Class
<
T
>
responseType
)
{
return
REST_TEMPLATE
.
postForEntity
(
url
,
HttpEntity
.
EMPTY
,
responseType
);
}
/**
* POST请求调用方式
*
* @param url 请求URL
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
Object
requestBody
,
Class
<
T
>
responseType
)
{
return
REST_TEMPLATE
.
postForEntity
(
url
,
requestBody
,
responseType
);
}
/**
* POST请求调用方式
*
* @param url 请求URL
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
Object
requestBody
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
return
REST_TEMPLATE
.
postForEntity
(
url
,
requestBody
,
responseType
,
uriVariables
);
}
/**
* POST请求调用方式
*
* @param url 请求URL
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
Object
requestBody
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
return
REST_TEMPLATE
.
postForEntity
(
url
,
requestBody
,
responseType
,
uriVariables
);
}
/**
* 带请求头的POST请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
Map
<
String
,
String
>
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
post
(
url
,
httpHeaders
,
requestBody
,
responseType
,
uriVariables
);
}
/**
* 带请求头的POST请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
HttpHeaders
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
,
headers
);
return
post
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 带请求头的POST请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
Map
<
String
,
String
>
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
post
(
url
,
httpHeaders
,
requestBody
,
responseType
,
uriVariables
);
}
/**
* 带请求头的POST请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
HttpHeaders
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
,
headers
);
return
post
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 自定义请求头和请求体的POST请求调用方式
*
* @param url 请求URL
* @param requestEntity 请求头和请求体封装对象
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
HttpEntity
<?>
requestEntity
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
return
REST_TEMPLATE
.
exchange
(
url
,
HttpMethod
.
POST
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 自定义请求头和请求体的POST请求调用方式
*
* @param url 请求URL
* @param requestEntity 请求头和请求体封装对象
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
post
(
String
url
,
HttpEntity
<?>
requestEntity
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
return
REST_TEMPLATE
.
exchange
(
url
,
HttpMethod
.
POST
,
requestEntity
,
responseType
,
uriVariables
);
}
//#endregion
//#region ----------------------------------PUT-------------------------------------------------------
/**
* PUT请求调用方式
*
* @param url 请求URL
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
put
(
String
url
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
return
put
(
url
,
HttpEntity
.
EMPTY
,
responseType
,
uriVariables
);
}
/**
* PUT请求调用方式
*
* @param url 请求URL
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
put
(
String
url
,
Object
requestBody
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
);
return
put
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* PUT请求调用方式
*
* @param url 请求URL
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
put
(
String
url
,
Object
requestBody
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
);
return
put
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 带请求头的PUT请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
put
(
String
url
,
Map
<
String
,
String
>
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
put
(
url
,
httpHeaders
,
requestBody
,
responseType
,
uriVariables
);
}
/**
* 带请求头的PUT请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
put
(
String
url
,
HttpHeaders
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
,
headers
);
return
put
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 带请求头的PUT请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
put
(
String
url
,
Map
<
String
,
String
>
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
put
(
url
,
httpHeaders
,
requestBody
,
responseType
,
uriVariables
);
}
/**
* 带请求头的PUT请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
put
(
String
url
,
HttpHeaders
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
,
headers
);
return
put
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 自定义请求头和请求体的PUT请求调用方式
*
* @param url 请求URL
* @param requestEntity 请求头和请求体封装对象
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
put
(
String
url
,
HttpEntity
<?>
requestEntity
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
return
REST_TEMPLATE
.
exchange
(
url
,
HttpMethod
.
PUT
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 自定义请求头和请求体的PUT请求调用方式
*
* @param url 请求URL
* @param requestEntity 请求头和请求体封装对象
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
put
(
String
url
,
HttpEntity
<?>
requestEntity
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
return
REST_TEMPLATE
.
exchange
(
url
,
HttpMethod
.
PUT
,
requestEntity
,
responseType
,
uriVariables
);
}
//#endregion
//#region ----------------------------------DELETE-------------------------------------------------------
/**
* DELETE请求调用方式
*
* @param url 请求URL
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
return
delete
(
url
,
HttpEntity
.
EMPTY
,
responseType
,
uriVariables
);
}
/**
* DELETE请求调用方式
*
* @param url 请求URL
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
return
delete
(
url
,
HttpEntity
.
EMPTY
,
responseType
,
uriVariables
);
}
/**
* DELETE请求调用方式
*
* @param url 请求URL
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
Object
requestBody
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
);
return
delete
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* DELETE请求调用方式
*
* @param url 请求URL
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
Object
requestBody
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
);
return
delete
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 带请求头的DELETE请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
Map
<
String
,
String
>
headers
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
delete
(
url
,
httpHeaders
,
responseType
,
uriVariables
);
}
/**
* 带请求头的DELETE请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
HttpHeaders
headers
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
headers
);
return
delete
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 带请求头的DELETE请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
Map
<
String
,
String
>
headers
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
delete
(
url
,
httpHeaders
,
responseType
,
uriVariables
);
}
/**
* 带请求头的DELETE请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
HttpHeaders
headers
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
headers
);
return
delete
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 带请求头的DELETE请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
Map
<
String
,
String
>
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
delete
(
url
,
httpHeaders
,
requestBody
,
responseType
,
uriVariables
);
}
/**
* 带请求头的DELETE请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
HttpHeaders
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
,
headers
);
return
delete
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 带请求头的DELETE请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
Map
<
String
,
String
>
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
setAll
(
headers
);
return
delete
(
url
,
httpHeaders
,
requestBody
,
responseType
,
uriVariables
);
}
/**
* 带请求头的DELETE请求调用方式
*
* @param url 请求URL
* @param headers 请求头参数
* @param requestBody 请求参数体
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
HttpHeaders
headers
,
Object
requestBody
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
HttpEntity
<
Object
>
requestEntity
=
new
HttpEntity
<
Object
>(
requestBody
,
headers
);
return
delete
(
url
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 自定义请求头和请求体的DELETE请求调用方式
*
* @param url 请求URL
* @param requestEntity 请求头和请求体封装对象
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
HttpEntity
<?>
requestEntity
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
return
REST_TEMPLATE
.
exchange
(
url
,
HttpMethod
.
DELETE
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 自定义请求头和请求体的DELETE请求调用方式
*
* @param url 请求URL
* @param requestEntity 请求头和请求体封装对象
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
delete
(
String
url
,
HttpEntity
<?>
requestEntity
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
return
REST_TEMPLATE
.
exchange
(
url
,
HttpMethod
.
DELETE
,
requestEntity
,
responseType
,
uriVariables
);
}
//#endregion
//#region ----------------------------------通用方法-------------------------------------------------------
/**
* 通用调用方式
*
* @param url 请求URL
* @param method 请求方法类型
* @param requestEntity 请求头和请求体封装对象
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,按顺序依次对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
exchange
(
String
url
,
HttpMethod
method
,
HttpEntity
<?>
requestEntity
,
Class
<
T
>
responseType
,
Object
...
uriVariables
)
{
return
REST_TEMPLATE
.
exchange
(
url
,
method
,
requestEntity
,
responseType
,
uriVariables
);
}
/**
* 通用调用方式
*
* @param url 请求URL
* @param method 请求方法类型
* @param requestEntity 请求头和请求体封装对象
* @param responseType 返回对象类型
* @param uriVariables URL中的变量,与Map中的key对应
* @return ResponseEntity 响应对象封装类
*/
public
static
<
T
>
ResponseEntity
<
T
>
exchange
(
String
url
,
HttpMethod
method
,
HttpEntity
<?>
requestEntity
,
Class
<
T
>
responseType
,
Map
<
String
,
?>
uriVariables
)
{
return
REST_TEMPLATE
.
exchange
(
url
,
method
,
requestEntity
,
responseType
,
uriVariables
);
}
//#endregion
/**
* 获取RestTemplate实例对象,可自由调用其方法
*
* @return RestTemplate实例对象
*/
public
static
RestTemplate
getRestTemplate
()
{
return
REST_TEMPLATE
;
}
}
\ No newline at end of file
src/main/java/com/syc/slm/common/core/util/ServletUtils.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
common
.
core
.
util
;
import
com.google.common.collect.Maps
;
import
com.syc.slm.slmbi.exception.SysException
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Enumeration
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* slm-bi
* ServletUtils 工具类
* @author : lin
* @date : 2021-04-13 10:15
**/
public
final
class
ServletUtils
{
/**
* 获取HttpServletRequest
* @return request
*/
public
static
HttpServletRequest
getHttpServletRequest
()
{
RequestAttributes
attr
=
RequestContextHolder
.
getRequestAttributes
();
if
(
attr
==
null
)
{
throw
new
SysException
(
"无法提取 request"
);
}
return
((
ServletRequestAttributes
)
attr
).
getRequest
();
}
public
static
Map
<
String
,
String
>
getHeaderMap
(
HttpServletRequest
request
){
Map
<
String
,
String
>
result
=
Maps
.
newHashMap
();
Enumeration
<
String
>
names
=
request
.
getHeaderNames
();
String
name
;
while
(
names
.
hasMoreElements
()){
name
=
names
.
nextElement
();
String
val
=
request
.
getHeader
(
name
);
if
(
StringUtils
.
isNotEmpty
(
val
))
{
result
.
put
(
name
,
val
);
}
}
return
result
;
}
}
src/main/java/com/syc/slm/slmbi/config/InfluxdbConfig.java
deleted
100644 → 0
View file @
a0c723fd
package
com
.
syc
.
slm
.
slmbi
.
config
;
import
lombok.Data
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
/**
* slm-bi
* Influxdb 配置
* @author : lin
* @date : 2021-03-25 10:50
**/
@Data
@Configuration
public
class
InfluxdbConfig
{
@Value
(
"${influxdb.host}"
)
public
String
host
;
@Value
(
"${influxdb.port}"
)
public
String
port
;
@Value
(
"${influxdb.username}"
)
public
String
username
;
@Value
(
"${influxdb.password}"
)
public
String
password
;
}
src/main/java/com/syc/slm/slmbi/config/MybatisPlusConfig.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
config
;
package
com
.
syc
.
slm
.
slmbi
.
config
;
import
com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor
;
import
com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
...
@@ -20,4 +21,15 @@ public class MybatisPlusConfig {
...
@@ -20,4 +21,15 @@ public class MybatisPlusConfig {
public
PaginationInterceptor
paginationInterceptor
()
{
public
PaginationInterceptor
paginationInterceptor
()
{
return
new
PaginationInterceptor
();
return
new
PaginationInterceptor
();
}
}
// /**
// * 自动填充数据
// */
// @Bean
// @ConditionalOnMissingBean(MateMetaObjectHandler.class)
// public MateMetaObjectHandler mateMetaObjectHandler(){
// MateMetaObjectHandler metaObjectHandler = new MateMetaObjectHandler();
// log.info("MateMetaObjectHandler [{}]", metaObjectHandler);
// return metaObjectHandler;
// }
}
}
src/main/java/com/syc/slm/slmbi/config/SysMetaObjectHandler.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
config
;
import
com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.common.core.util.ServletUtils
;
import
com.syc.slm.slmbi.entity.CurrentUser
;
import
com.syc.slm.slmbi.exception.SysException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.reflection.MetaObject
;
import
org.springframework.stereotype.Component
;
import
javax.servlet.http.HttpServletRequest
;
import
java.nio.channels.SelectableChannel
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.function.Supplier
;
/**
* mybatisplus自定义填充公共字段 ,即没有传的字段自动填充
* @author lin
* @date 2021-04-01 10:52:44
*/
@Component
@Slf4j
public
class
SysMetaObjectHandler
implements
MetaObjectHandler
{
private
static
final
String
ID
=
"id"
;
private
static
final
String
APP_ID
=
"appId"
;
private
static
final
String
CREATOR
=
"creator"
;
private
static
final
String
CREATOR_NAME
=
"creatorName"
;
private
static
final
String
CREATE_TIME
=
"createTime"
;
private
static
final
String
UPDATER
=
"updater"
;
private
static
final
String
UPDATER_NAME
=
"updaterName"
;
private
static
final
String
UPDATE_TIME
=
"updateTime"
;
private
static
final
String
RECORD_STATUS
=
"recordStatus"
;
private
CurrentUser
userInfo
(){
HttpServletRequest
request
=
ServletUtils
.
getHttpServletRequest
();
Map
<
String
,
String
>
headerMap
=
ServletUtils
.
getHeaderMap
(
request
);
if
(
CollectionUtils
.
isEmpty
(
headerMap
)){
throw
new
SysException
(
"头部不能为空"
);
}
String
token
=
headerMap
.
get
(
"token"
);
if
(
StringUtils
.
isBlank
(
token
)){
throw
new
SysException
(
"token不能为空"
);
}
Object
currentUser
=
request
.
getSession
().
getAttribute
(
token
);
CurrentUser
user
=
null
;
if
(
ObjectUtils
.
isNotEmpty
(
currentUser
)){
user
=
SlmConstants
.
gson
.
fromJson
(
currentUser
.
toString
(),
CurrentUser
.
class
);
}
if
(
ObjectUtils
.
isEmpty
(
user
)){
throw
new
SysException
(
"获取不到当前用户"
);
}
return
user
;
}
/**
* 插入使用
*/
@Override
public
void
insertFill
(
MetaObject
metaObject
)
{
CurrentUser
user
=
userInfo
();
fillValue
(
metaObject
,
ID
,
()
->
(
metaObject
.
getValue
(
ID
)
==
null
?
IdWorker
.
get32UUID
()
:
metaObject
.
getValue
(
ID
)));
fillValue
(
metaObject
,
APP_ID
,
()
->
(
metaObject
.
getValue
(
APP_ID
)
==
null
?
user
.
getAppId
()
:
metaObject
.
getValue
(
APP_ID
)));
fillValue
(
metaObject
,
CREATOR
,
()
->
(
metaObject
.
getValue
(
CREATOR
)
==
null
?
user
.
getUid
()
:
metaObject
.
getValue
(
CREATOR
)));
fillValue
(
metaObject
,
CREATOR_NAME
,
()
->
(
metaObject
.
getValue
(
CREATOR_NAME
)
==
null
?
user
.
getName
()
:
metaObject
.
getValue
(
CREATOR_NAME
)));
fillValue
(
metaObject
,
CREATE_TIME
,
()
->
(
metaObject
.
getValue
(
CREATE_TIME
)
==
null
?
new
Date
()
:
metaObject
.
getValue
(
CREATE_TIME
)));
fillValue
(
metaObject
,
RECORD_STATUS
,
()
->
(
metaObject
.
getValue
(
RECORD_STATUS
)
==
null
?
1
:
metaObject
.
getValue
(
RECORD_STATUS
)));
}
@Override
public
void
updateFill
(
MetaObject
metaObject
)
{
CurrentUser
user
=
userInfo
();
setFieldValByName
(
UPDATER
,
user
.
getUid
(),
metaObject
);
setFieldValByName
(
UPDATER_NAME
,
user
.
getName
(),
metaObject
);
setFieldValByName
(
UPDATE_TIME
,
new
Date
(),
metaObject
);
}
private
void
fillValue
(
MetaObject
metaObject
,
String
fieldName
,
Supplier
<?>
valueSupplier
)
{
if
(!
metaObject
.
hasGetter
(
fieldName
))
{
return
;
}
Object
sidObj
=
metaObject
.
getValue
(
fieldName
);
if
(
sidObj
==
null
&&
metaObject
.
hasSetter
(
fieldName
)
&&
valueSupplier
!=
null
)
{
setFieldValByName
(
fieldName
,
valueSupplier
.
get
(),
metaObject
);
}
}
}
src/main/java/com/syc/slm/slmbi/controller/BaseRestController.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
controller
;
import
com.google.common.collect.Maps
;
import
com.google.gson.reflect.TypeToken
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.common.core.util.NetResponseUtils
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.RestTemplateUtils
;
import
com.syc.slm.slmbi.entity.CurrentUser
;
import
com.syc.slm.slmbi.exception.SysException
;
import
com.syc.slm.slmbi.function.Action0
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.ModelAttribute
;
import
org.springframework.web.context.request.NativeWebRequest
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.ServletWebRequest
;
import
org.springframework.web.servlet.HandlerMapping
;
import
org.springframework.web.servlet.View
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.Enumeration
;
import
java.util.Map
;
import
java.util.function.Supplier
;
/**
* slm-bi
* 抽取公用得controller父类
*
* @author : lin
* @date : 2021-04-06 09:09
**/
@Slf4j
public
class
BaseRestController
{
/**
* 用户token
*/
protected
String
token
;
/**
* 用户信息
*/
protected
CurrentUser
currentUser
;
@Value
(
"${dc_client.host}"
)
protected
String
dcClientHost
;
@Value
(
"${dc_client.interfaces.positionListUrl}"
)
protected
String
positionListUrl
;
@Value
(
"${dc_client.interfaces.deptListUrl}"
)
protected
String
deptListUrl
;
@Value
(
"${dc_client.interfaces.userTree}"
)
protected
String
userTree
;
@Value
(
"${dc_client.interfaces.variableList}"
)
protected
String
variableList
;
@Value
(
"${dc_client.interfaces.deviceList}"
)
protected
String
deviceList
;
@Value
(
"${dc_client.interfaces.deptsRoles}"
)
protected
String
deptsRoles
;
@ModelAttribute
public
void
onInit
(
HttpServletRequest
request
)
{
String
uri
=
request
.
getRequestURI
();
log
.
info
(
"请求url--->>>>"
+
uri
);
Map
<
String
,
String
[]>
parameterMap
=
request
.
getParameterMap
();
log
.
info
(
"请求参数--->>>>"
+
SlmConstants
.
gson
.
toJson
(
parameterMap
));
Enumeration
<
String
>
headerNames
=
request
.
getHeaderNames
();
Map
<
String
,
String
>
headers
=
Maps
.
newHashMap
();
while
(
headerNames
.
hasMoreElements
()){
String
headerName
=
headerNames
.
nextElement
();
Enumeration
<
String
>
headerValues
=
request
.
getHeaders
(
headerName
);
while
(
headerValues
.
hasMoreElements
()){
headers
.
put
(
headerName
,
headerValues
.
nextElement
());
}
}
log
.
info
(
"请求头参数--->>>>"
+
SlmConstants
.
gson
.
toJson
(
headers
));
token
=
request
.
getHeader
(
"token"
);
if
(!
uri
.
contains
(
"tokens"
))
{
if
(
StringUtils
.
isEmpty
(
token
))
{
throw
new
SysException
(
"token不能为空"
);
}
log
.
info
(
"获取用户信息"
);
NativeWebRequest
webRequest
=
new
ServletWebRequest
(
request
);
Map
<
String
,
String
>
map
=
(
Map
<
String
,
String
>)
webRequest
.
getAttribute
(
HandlerMapping
.
URI_TEMPLATE_VARIABLES_ATTRIBUTE
,
RequestAttributes
.
SCOPE_REQUEST
);
// Map<String, Object> map = (Map<String, Object>) webRequest.getAttribute(View.PATH_VARIABLES, RequestAttributes.SCOPE_REQUEST);
Map
<
String
,
String
>
heads
=
Maps
.
newHashMap
();
heads
.
put
(
"token"
,
token
);
Map
<
String
,
String
>
uriVariables
=
Maps
.
newHashMap
();
uriVariables
.
put
(
"appId"
,
map
.
get
(
"appId"
)+
""
);
String
getUrl
=
dcClientHost
+
"/{appId}/users/user-info"
;
R
<
Map
<
String
,
Object
>>
result
=
RestTemplateUtils
.
get
(
getUrl
,
heads
,
new
TypeToken
<
R
<
Map
<
String
,
Object
>>>()
{}.
getType
(),
uriVariables
);
Map
<
String
,
Object
>
userInfo
=
result
.
detach
();
currentUser
=
new
CurrentUser
();
currentUser
.
setUid
(
userInfo
.
get
(
"uid"
)+
""
);
currentUser
.
setPlatformId
(
userInfo
.
get
(
"platform_id"
)+
""
);
currentUser
.
setName
(
userInfo
.
get
(
"real_name"
)+
""
);
currentUser
.
setAppId
(
userInfo
.
get
(
"app_id"
)+
""
);
currentUser
.
setToken
(
token
);
request
.
getSession
().
setAttribute
(
token
,
SlmConstants
.
gson
.
toJson
(
currentUser
));
}
}
R
<
Object
>
call
(
Action0
action
)
{
return
NetResponseUtils
.
call
(
action
);
}
<
T
>
R
<
T
>
call
(
Supplier
<
T
>
supplier
)
{
return
NetResponseUtils
.
call
(
supplier
);
}
}
src/main/java/com/syc/slm/slmbi/controller/DeptController.java
View file @
e691bc53
...
@@ -5,6 +5,7 @@ import com.syc.slm.slmbi.service.DeptService;
...
@@ -5,6 +5,7 @@ import com.syc.slm.slmbi.service.DeptService;
import
com.syc.slm.slmbi.vo.DeptVo
;
import
com.syc.slm.slmbi.vo.DeptVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -18,18 +19,20 @@ import java.util.List;
...
@@ -18,18 +19,20 @@ import java.util.List;
* @author : lin
* @author : lin
* @date : 2021-03-25 18:39
* @date : 2021-03-25 18:39
**/
**/
@RequestMapping
(
"/departments"
)
@RequestMapping
(
"/
{appId}/
departments"
)
@RestController
@RestController
@Api
(
value
=
"部门信息接口"
,
description
=
"部门信息接口"
)
@Api
(
value
=
"部门信息接口"
,
tags
=
"部门信息接口"
)
public
class
DeptController
{
public
class
DeptController
extends
BaseRestController
{
@Autowired
@Autowired
private
DeptService
deptService
;
private
DeptService
deptService
;
@GetMapping
@GetMapping
@ApiOperation
(
"部门查询"
)
@ApiOperation
(
"部门查询"
)
@ApiImplicitParam
(
name
=
"deptName"
,
value
=
"部门名称"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"deptName"
,
value
=
"部门名称"
,
dataTypeClass
=
String
.
class
),
public
R
<
List
<
DeptVo
>>
selectDeptList
(
@RequestParam
(
value
=
"deptName"
,
required
=
false
)
String
deptName
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
return
R
.
ok
(
deptService
.
selectDeptList
(
deptName
));
public
R
<
List
<
DeptVo
>>
selectDeptList
(
@PathVariable
String
appId
,
@RequestParam
(
value
=
"deptName"
,
required
=
false
)
String
deptName
)
{
return
call
(()->(
deptService
.
selectPositionList
(
dcClientHost
+
deptListUrl
,
token
,
appId
,
deptName
)));
}
}
}
}
src/main/java/com/syc/slm/slmbi/controller/InstrumentPanelConfigController.java
View file @
e691bc53
...
@@ -6,6 +6,7 @@ import com.syc.slm.slmbi.service.InstrumentPanelConfigService;
...
@@ -6,6 +6,7 @@ import com.syc.slm.slmbi.service.InstrumentPanelConfigService;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -18,9 +19,9 @@ import org.springframework.web.bind.annotation.*;
...
@@ -18,9 +19,9 @@ import org.springframework.web.bind.annotation.*;
* @date : 2021-03-25 19:09
* @date : 2021-03-25 19:09
**/
**/
@RequestMapping
(
"/panel-configs"
)
@RequestMapping
(
"/
{appId}/
panel-configs"
)
@RestController
@RestController
@Api
(
value
=
"仪表板样式以及数据配置"
)
@Api
(
value
=
"仪表板样式以及数据配置"
,
tags
=
"仪表板样式以及数据配置"
)
public
class
InstrumentPanelConfigController
{
public
class
InstrumentPanelConfigController
{
@Autowired
@Autowired
...
@@ -28,20 +29,23 @@ public class InstrumentPanelConfigController {
...
@@ -28,20 +29,23 @@ public class InstrumentPanelConfigController {
@PostMapping
@PostMapping
@ApiOperation
(
"保存仪表板样式以及数据配置"
)
@ApiOperation
(
"保存仪表板样式以及数据配置"
)
public
R
<
String
>
saveInstrumentPanelConfig
(
@RequestBody
InstrumentPanelConfigDTO
config
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
instrumentPanelConfigService
.
saveConfig
(
config
));
public
R
<
String
>
saveInstrumentPanelConfig
(
@PathVariable
String
appId
,
@RequestBody
InstrumentPanelConfigDTO
config
)
{
return
R
.
ok
(
instrumentPanelConfigService
.
saveConfig
(
appId
,
config
));
}
}
@PostMapping
(
"/publish"
)
@PostMapping
(
"/publish"
)
@ApiOperation
(
"保存发布仪表板样式以及数据配置"
)
@ApiOperation
(
"保存发布仪表板样式以及数据配置"
)
public
R
<
String
>
publish
(
@RequestBody
InstrumentPanelConfigDTO
config
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
instrumentPanelConfigService
.
publish
(
config
));
public
R
<
String
>
publish
(
@PathVariable
String
appId
,
@RequestBody
InstrumentPanelConfigDTO
config
)
{
return
R
.
ok
(
instrumentPanelConfigService
.
publish
(
appId
,
config
));
}
}
@GetMapping
(
"/{panelId}"
)
@GetMapping
(
"/{panelId}"
)
@ApiOperation
(
"根据仪表板id获取仪表板配置,并且获取到组件"
)
@ApiOperation
(
"根据仪表板id获取仪表板配置"
)
@ApiImplicitParam
(
name
=
"panelId"
,
value
=
"仪表板id"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"panelId"
,
value
=
"仪表板id"
,
dataTypeClass
=
String
.
class
),
public
R
<
InstrumentPanelConfigVo
>
getConfigByPanelId
(
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
public
R
<
InstrumentPanelConfigVo
>
getConfigByPanelId
(
@PathVariable
String
appId
,
@PathVariable
(
"panelId"
)
String
panelId
)
{
@PathVariable
(
"panelId"
)
String
panelId
)
{
return
R
.
ok
(
instrumentPanelConfigService
.
getConfigByPanelId
(
panelId
));
return
R
.
ok
(
instrumentPanelConfigService
.
getConfigByPanelId
(
panelId
));
}
}
...
...
src/main/java/com/syc/slm/slmbi/controller/InstrumentPanelController.java
View file @
e691bc53
...
@@ -3,15 +3,18 @@ package com.syc.slm.slmbi.controller;
...
@@ -3,15 +3,18 @@ package com.syc.slm.slmbi.controller;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.slmbi.dto.SaveInstrumentPanelDTO
;
import
com.syc.slm.slmbi.dto.SaveInstrumentPanelDTO
;
import
com.syc.slm.slmbi.dto.
Search
InstrumentPanelDTO
;
import
com.syc.slm.slmbi.dto.
Query
InstrumentPanelDTO
;
import
com.syc.slm.slmbi.service.InstrumentPanelService
;
import
com.syc.slm.slmbi.service.InstrumentPanelService
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -22,9 +25,9 @@ import java.util.List;
...
@@ -22,9 +25,9 @@ import java.util.List;
* @date : 2021-03-25 15:10
* @date : 2021-03-25 15:10
**/
**/
@RestController
@RestController
@RequestMapping
(
"/panels"
)
@RequestMapping
(
"/
{appId}/
panels"
)
@Api
(
value
=
"仪表板
"
,
description
=
"仪表板配置接口"
)
@Api
(
value
=
"仪表板
配置接口"
,
tags
=
"仪表板配置接口"
)
public
class
InstrumentPanelController
{
public
class
InstrumentPanelController
extends
BaseRestController
{
@Autowired
@Autowired
private
InstrumentPanelService
instrumentPanelService
;
private
InstrumentPanelService
instrumentPanelService
;
...
@@ -37,55 +40,67 @@ public class InstrumentPanelController {
...
@@ -37,55 +40,67 @@ public class InstrumentPanelController {
*/
*/
@GetMapping
@GetMapping
@ApiOperation
(
"仪表板列表"
)
@ApiOperation
(
"仪表板列表"
)
public
R
<
IPage
<
InstrumentPanelVo
>>
selectInstrumentPanelList
(
@RequestBody
SearchInstrumentPanelDTO
where
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
instrumentPanelService
.
selectInstrumentPanelList
(
where
));
public
R
<
IPage
<
InstrumentPanelVo
>>
selectInstrumentPanelList
(
@PathVariable
String
appId
,
QueryInstrumentPanelDTO
where
)
{
return
call
(()
->
instrumentPanelService
.
selectInstrumentPanelList
(
appId
,
where
));
}
}
@PostMapping
@PostMapping
@ApiOperation
(
"新增仪表板"
)
@ApiOperation
(
"新增仪表板"
)
public
R
<
String
>
saveInstrumentPanel
(
@RequestBody
SaveInstrumentPanelDTO
panel
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
instrumentPanelService
.
savePanel
(
panel
));
public
R
<
String
>
saveInstrumentPanel
(
@PathVariable
String
appId
,
@RequestBody
SaveInstrumentPanelDTO
panel
)
{
return
call
(()
->
instrumentPanelService
.
savePanel
(
appId
,
panel
));
}
}
@PutMapping
(
"/
batch-
publish"
)
@PutMapping
(
"/publish"
)
@ApiOperation
(
"批量发布"
)
@ApiOperation
(
"批量发布"
)
@ApiImplicitParam
(
name
=
"ids"
,
value
=
"仪表板id集合"
,
required
=
true
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"ids"
,
public
R
<
Boolean
>
batchPublish
(
@RequestBody
List
<
String
>
ids
)
{
value
=
"仪表板id集合"
,
return
R
.
ok
(
instrumentPanelService
.
batchPublish
(
ids
));
required
=
true
,
dataTypeClass
=
Arrays
.
class
),
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
public
R
<
List
<
String
>>
batchPublish
(
@PathVariable
String
appId
,
@RequestParam
List
<
String
>
ids
)
{
return
call
(()
->
instrumentPanelService
.
batchPublish
(
ids
));
}
}
@PutMapping
(
"/{id}/offline"
)
@PutMapping
(
"/{id}/offline"
)
@ApiOperation
(
"下线"
)
@ApiOperation
(
"下线"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"仪表板id"
,
required
=
true
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"仪表板id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
public
R
<
String
>
offline
(
@PathVariable
(
"id"
)
String
id
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
return
R
.
ok
(
instrumentPanelService
.
offline
(
id
));
public
R
<
String
>
offline
(
@PathVariable
String
appId
,
@PathVariable
(
"id"
)
String
id
)
{
return
call
(()
->
instrumentPanelService
.
offline
(
id
));
}
}
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
@ApiOperation
(
"删除仪表板"
)
@ApiOperation
(
"删除仪表板"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"仪表板id"
,
required
=
true
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"仪表板id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
public
R
<
String
>
delInstrumentPanel
(
@PathVariable
(
"id"
)
String
id
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
return
R
.
ok
(
instrumentPanelService
.
delPanel
(
id
));
public
R
<
String
>
delInstrumentPanel
(
@PathVariable
String
appId
,
@PathVariable
(
"id"
)
String
id
)
{
return
call
(()
->
instrumentPanelService
.
delPanel
(
id
));
}
}
@PostMapping
(
"/save-as"
)
@PostMapping
(
"/save-as"
)
@ApiOperation
(
"另存为"
)
@ApiOperation
(
"另存为"
)
public
R
<
String
>
saveAs
(
@RequestBody
SaveInstrumentPanelDTO
panelDTO
)
{
@ApiImplicitParam
(
name
=
"id"
,
value
=
"仪表板id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
instrumentPanelService
.
saveAsPanel
(
panelDTO
));
public
R
<
String
>
saveAs
(
@PathVariable
String
appId
,
@RequestBody
SaveInstrumentPanelDTO
panelDTO
)
{
return
call
(()
->
instrumentPanelService
.
saveAsPanel
(
appId
,
panelDTO
));
}
}
@PostMapping
(
"/{id}/show-recovery-btn"
)
@PostMapping
(
"/{id}/show-recovery-btn"
)
@ApiOperation
(
"是否显示恢复按钮"
)
@ApiOperation
(
"是否显示恢复按钮"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"仪表板id"
,
required
=
true
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"仪表板id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
public
R
<
Boolean
>
showRecoveryBtn
(
@PathVariable
(
"id"
)
String
id
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
return
R
.
ok
(
instrumentPanelService
.
showRecoveryBtn
(
id
));
public
R
<
Boolean
>
showRecoveryBtn
(
@PathVariable
String
appId
,
@PathVariable
(
"id"
)
String
id
)
{
return
call
(()
->
instrumentPanelService
.
showRecoveryBtn
(
id
));
}
}
@PutMapping
(
"/{id}/recovery"
)
@PutMapping
(
"/{id}/recovery"
)
@ApiOperation
(
"恢复按钮操作"
)
@ApiOperation
(
"恢复按钮操作"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"仪表板id"
,
required
=
true
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"仪表板id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
public
R
<
String
>
recoveryInstrumentPanel
(
@PathVariable
(
"id"
)
String
id
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
return
R
.
ok
(
instrumentPanelService
.
recoveryPanel
(
id
));
public
R
<
InstrumentPanelConfigVo
>
recoveryInstrumentPanel
(
@PathVariable
String
appId
,
@PathVariable
(
"id"
)
String
id
)
{
return
call
(()
->
instrumentPanelService
.
recoveryPanel
(
id
));
}
}
}
}
src/main/java/com/syc/slm/slmbi/controller/InstrumentPanelGroupController.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
controller
;
package
com
.
syc
.
slm
.
slmbi
.
controller
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.slmbi.dto.CreateInstrumentPanelGroupDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO
;
import
com.syc.slm.slmbi.service.InstrumentPanelGroupService
;
import
com.syc.slm.slmbi.service.InstrumentPanelGroupService
;
import
com.syc.slm.slmbi.vo.InstrumentPanelGroupVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelGroupVo
;
import
com.syc.slm.slmbi.vo.PanelGroupVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
...
@@ -22,47 +22,43 @@ import java.util.List;
...
@@ -22,47 +22,43 @@ import java.util.List;
* @date : 2021-03-25 15:07
* @date : 2021-03-25 15:07
**/
**/
@RestController
@RestController
@RequestMapping
(
"/groups"
)
@RequestMapping
(
"/
{appId}/
groups"
)
@Api
(
value
=
"仪表板分组"
)
@Api
(
value
=
"仪表板分组"
,
tags
=
"仪表板分组"
)
public
class
InstrumentPanelGroupController
{
public
class
InstrumentPanelGroupController
extends
BaseRestController
{
@Autowired
@Autowired
private
InstrumentPanelGroupService
instrumentPanelGroupService
;
private
InstrumentPanelGroupService
instrumentPanelGroupService
;
@GetMapping
@ApiOperation
(
"第一次进入页面,或者点击查询,获取全部分组下的仪表板数据,以及分组数据"
)
@ApiImplicitParam
(
name
=
"name"
,
value
=
"分组名称或者仪表板名称"
)
public
R
<
List
<
PanelGroupVo
>>
loadTrees
(
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
)
{
return
R
.
ok
(
instrumentPanelGroupService
.
loadTrees
(
name
));
}
@GetMapping
(
"/children"
)
@GetMapping
@ApiOperation
(
"点击节点获取,该分组下的仪表板信息,以及分组数据"
)
@ApiOperation
(
"仪表板列表查询,仪表板分组增删改页面的分组树"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"groupId"
,
value
=
"分组id"
,
required
=
true
),
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"name"
,
value
=
"分组名称或者仪表板名称"
)})
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
public
R
<
List
<
PanelGroupVo
>>
children
(
@RequestParam
(
"groupId"
)
String
groupId
,
@ApiImplicitParam
(
name
=
"name"
,
value
=
"分组名称"
,
dataTypeClass
=
String
.
class
)
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
)
{
})
return
R
.
ok
(
instrumentPanelGroupService
.
children
(
groupId
,
name
));
public
R
<
List
<
InstrumentPanelGroupVo
>>
selectGroupList
(
@PathVariable
String
appId
,
@RequestParam
(
required
=
false
,
value
=
"name"
)
String
name
)
{
return
call
(()->
instrumentPanelGroupService
.
selectGroupList
(
appId
,
name
));
}
}
@PostMapping
@PostMapping
@ApiOperation
(
"保存仪表板分组"
)
@ApiOperation
(
"保存仪表板分组"
)
public
R
<
String
>
saveGroup
(
@RequestBody
InstrumentPanelGroupDTO
group
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
instrumentPanelGroupService
.
saveGroup
(
group
));
public
R
<
String
>
saveGroup
(
@PathVariable
String
appId
,
@RequestBody
CreateInstrumentPanelGroupDTO
group
)
{
return
call
(()->
instrumentPanelGroupService
.
saveGroup
(
group
,
appId
));
}
}
@PutMapping
@PutMapping
@ApiOperation
(
"更新仪表板分组"
)
@ApiOperation
(
"更新仪表板分组(一级分组是初始化得,不允许修改,其他分组修改必须传parentId)"
)
public
R
<
String
>
updateGroup
(
@RequestBody
InstrumentPanelGroupDTO
group
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
instrumentPanelGroupService
.
updateGroup
(
group
));
public
R
<
String
>
updateGroup
(
@PathVariable
String
appId
,
@RequestBody
InstrumentPanelGroupDTO
group
)
{
return
call
(()->
instrumentPanelGroupService
.
updateGroup
(
group
,
appId
));
}
}
@DeleteMapping
(
"/{groupId}"
)
@DeleteMapping
(
"/{groupId}"
)
@ApiOperation
(
"删除仪表板分组"
)
@ApiOperation
(
"删除仪表板分组"
)
public
R
<
String
>
delGroup
(
@PathVariable
String
groupId
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
instrumentPanelGroupService
.
delGroup
(
groupId
));
public
R
<
String
>
delGroup
(
@PathVariable
String
appId
,
@PathVariable
String
groupId
)
{
return
call
(()->
instrumentPanelGroupService
.
delGroup
(
groupId
));
}
}
}
}
src/main/java/com/syc/slm/slmbi/controller/InstrumentPanelPermissionController.java
View file @
e691bc53
...
@@ -6,10 +6,12 @@ import com.syc.slm.slmbi.service.InstrumentPanelPermissionService;
...
@@ -6,10 +6,12 @@ import com.syc.slm.slmbi.service.InstrumentPanelPermissionService;
import
com.syc.slm.slmbi.vo.InstrumentPanelPermissionVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelPermissionVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -19,39 +21,55 @@ import java.util.List;
...
@@ -19,39 +21,55 @@ import java.util.List;
* @author : lin
* @author : lin
* @date : 2021-03-25 18:54
* @date : 2021-03-25 18:54
**/
**/
@Api
(
value
=
"仪表板权限控制"
)
@Api
(
value
=
"仪表板权限控制"
,
tags
=
"仪表板权限控制"
)
@RestController
@RestController
@RequestMapping
(
"/panel-permissions"
)
@RequestMapping
(
"/
{appId}/
panel-permissions"
)
public
class
InstrumentPanelPermissionController
{
public
class
InstrumentPanelPermissionController
extends
BaseRestController
{
@Autowired
@Autowired
private
InstrumentPanelPermissionService
instrumentPanelPermissionService
;
private
InstrumentPanelPermissionService
instrumentPanelPermissionService
;
@PostMapping
@PostMapping
@ApiOperation
(
"保存仪表板权限(列表的属性保存)"
)
@ApiOperation
(
"保存仪表板权限(列表的属性保存)"
)
public
R
<
String
>
savePermission
(
@RequestBody
List
<
InstrumentPanelPermissionDTO
>
permissions
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
instrumentPanelPermissionService
.
savePermission
(
permissions
));
public
R
<
String
>
savePermission
(
@PathVariable
String
appId
,
@RequestBody
InstrumentPanelPermissionDTO
permission
)
{
return
call
(()
->
instrumentPanelPermissionService
.
savePermission
(
permission
));
}
}
@
Pos
tMapping
(
"/{panelId}/to-copy"
)
@
Ge
tMapping
(
"/{panelId}/to-copy"
)
@ApiOperation
(
"从其他仪表板复制配置"
)
@ApiOperation
(
"从其他仪表板复制配置"
)
@ApiImplicitParam
(
name
=
"panelId"
,
value
=
"其他仪表板id"
,
required
=
true
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
public
R
<
List
<
InstrumentPanelPermissionVo
>>
saveCopyOtherPermission
(
@PathVariable
String
panelId
)
{
value
=
"租户id"
,
return
R
.
ok
(
instrumentPanelPermissionService
.
saveCopyOtherPermission
(
panelId
));
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"panelId"
,
value
=
"其他仪表板id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
public
R
<
InstrumentPanelPermissionVo
>
saveCopyOtherPermission
(
@PathVariable
String
appId
,
@PathVariable
String
panelId
)
{
return
call
(()
->
(
instrumentPanelPermissionService
.
saveCopyOtherPermission
(
panelId
)));
}
}
@PostMapping
(
"/
{panelId}/
copy-to"
)
@PostMapping
(
"/copy-to"
)
@ApiOperation
(
"将仪表板权限复制给其他仪表板"
)
@ApiOperation
(
"将仪表板权限复制给其他仪表板"
)
@ApiImplicitParam
(
name
=
"panelId"
,
value
=
"其他仪表板id"
,
required
=
true
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
public
R
<
String
>
saveCopyToOtherPermission
(
@RequestBody
List
<
InstrumentPanelPermissionDTO
>
permissions
,
value
=
"租户id"
,
@PathVariable
String
panelId
)
{
required
=
true
,
return
R
.
ok
(
instrumentPanelPermissionService
.
saveCopyToOtherPermission
(
permissions
,
panelId
));
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"panelIds"
,
value
=
"其他仪表板id"
,
required
=
true
,
dataTypeClass
=
Arrays
.
class
)})
public
R
<
Object
>
saveCopyToOtherPermission
(
@PathVariable
String
appId
,
@RequestBody
InstrumentPanelPermissionDTO
permission
,
@RequestParam
List
<
String
>
panelIds
)
{
return
call
(()
->
instrumentPanelPermissionService
.
saveCopyToOtherPermission
(
permission
,
panelIds
));
}
}
@GetMapping
(
"/{panelId}"
)
@GetMapping
(
"/{panelId}"
)
@ApiOperation
(
"根据仪表板id获取仪表板权限"
)
@ApiOperation
(
"根据仪表板id获取仪表板权限"
)
@ApiImplicitParam
(
name
=
"panelId"
,
value
=
"仪表板id"
,
required
=
true
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
public
R
<
List
<
InstrumentPanelPermissionVo
>>
selectPermissionByPanelId
(
@PathVariable
String
panelId
)
{
value
=
"租户id"
,
return
R
.
ok
(
instrumentPanelPermissionService
.
selectPermissionByPanelId
(
panelId
));
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"panelId"
,
value
=
"其他仪表板id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
public
R
<
InstrumentPanelPermissionVo
>
selectPermissionByPanelId
(
@PathVariable
String
appId
,
@PathVariable
String
panelId
)
{
return
call
(()
->
(
instrumentPanelPermissionService
.
selectPermissionByPanelId
(
panelId
)));
}
}
}
}
src/main/java/com/syc/slm/slmbi/controller/InstrumentPanelTreeController.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
controller
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.slmbi.service.InstrumentPanelConfigService
;
import
com.syc.slm.slmbi.service.InstrumentPanelTreeService
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
com.syc.slm.slmbi.vo.PanelTreeNodeVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author liangbin
* @date 2021/3/31
*/
@RestController
@RequestMapping
(
"/{appId}/panel-tree"
)
@Api
(
value
=
"仪表板树接口"
,
tags
=
"仪表板树接口"
)
public
class
InstrumentPanelTreeController
extends
BaseRestController
{
@Autowired
private
InstrumentPanelTreeService
treeService
;
@Autowired
private
InstrumentPanelConfigService
configService
;
@GetMapping
@ApiOperation
(
"显示已发布仪表板树==》(刚进入页面)"
)
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
public
R
<
List
<
PanelTreeNodeVo
>>
loadTrees
(
@PathVariable
String
appId
)
{
return
call
(()
->
(
treeService
.
loadTrees
(
appId
,
dcClientHost
+
deptsRoles
,
currentUser
)));
}
@GetMapping
(
"/search"
)
@ApiOperation
(
"显示已发布仪表板树==》(点击查询)"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"name"
,
value
=
"分组名称或者仪表板名称"
,
dataTypeClass
=
String
.
class
)})
public
R
<
List
<
PanelTreeNodeVo
>>
loadTrees
(
@PathVariable
String
appId
,
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
)
{
return
call
(()
->
(
treeService
.
loadTrees
(
appId
,
name
,
dcClientHost
+
deptsRoles
,
currentUser
)));
}
@GetMapping
(
"/children"
)
@ApiOperation
(
"点击节点,显示已发布仪表板树"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"nodeId"
,
value
=
"分组id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"name"
,
value
=
"分组名称或者仪表板名称"
,
dataTypeClass
=
String
.
class
)})
public
R
<
List
<
PanelTreeNodeVo
>>
children
(
@PathVariable
String
appId
,
@RequestParam
(
"nodeId"
)
String
nodeId
,
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
)
{
return
call
(()
->
(
treeService
.
children
(
nodeId
,
name
,
dcClientHost
+
deptsRoles
,
currentUser
)));
}
@GetMapping
(
"/children-panel"
)
@ApiOperation
(
"点击节点,显示已发布仪表板配置"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"panelId"
,
value
=
"仪表板id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
public
R
<
InstrumentPanelConfigVo
>
childrenPanel
(
@PathVariable
String
appId
,
@RequestParam
(
"nodeId"
)
String
nodeId
)
{
return
call
(()
->
(
configService
.
getPublishConfigByPanelId
(
nodeId
)));
}
@GetMapping
(
"/copy"
)
@ApiOperation
(
"复制仪表板配置树"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"name"
,
value
=
"分组名称或者仪表板名称"
,
dataTypeClass
=
String
.
class
)})
public
R
<
List
<
PanelTreeNodeVo
>>
copyTreeList
(
@PathVariable
String
appId
,
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
)
{
return
call
(()
->
(
treeService
.
copyTreeList
(
appId
,
name
)));
}
@GetMapping
(
"/cite"
)
@ApiOperation
(
"复用仪表板树"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"name"
,
value
=
"分组名称,仪表板名称,组件名称"
,
dataTypeClass
=
String
.
class
)})
public
R
<
List
<
PanelTreeNodeVo
>>
cite
(
@PathVariable
String
appId
,
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
)
{
return
call
(()
->
(
treeService
.
citeTreeList
(
appId
,
name
)));
}
@GetMapping
(
"/cite-assembly"
)
@ApiOperation
(
"复用仪表板树点击组件获取配置(会返回一个map 优先从key为 wait_published 中匹配,如果找不到再从key 为published 中匹配 )"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"panelId"
,
value
=
"仪表板id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)})
public
R
<
Map
<
String
,
String
>>
assembly
(
@PathVariable
String
appId
,
@RequestParam
(
value
=
"panelId"
,
required
=
false
)
String
panelId
)
{
return
call
(()
->
(
treeService
.
assembly
(
appId
,
panelId
)));
}
}
src/main/java/com/syc/slm/slmbi/controller/PositionController.java
View file @
e691bc53
...
@@ -5,7 +5,9 @@ import com.syc.slm.slmbi.service.PositionService;
...
@@ -5,7 +5,9 @@ import com.syc.slm.slmbi.service.PositionService;
import
com.syc.slm.slmbi.vo.PositionVo
;
import
com.syc.slm.slmbi.vo.PositionVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.catalina.Host
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -18,19 +20,20 @@ import java.util.List;
...
@@ -18,19 +20,20 @@ import java.util.List;
* @author : lin
* @author : lin
* @date : 2021-03-25 17:26
* @date : 2021-03-25 17:26
**/
**/
@Api
(
value
=
"职位查询列表"
)
@Api
(
value
=
"职位查询列表"
,
tags
=
"职位查询列表"
)
@RestController
@RestController
@RequestMapping
(
"/positions"
)
@RequestMapping
(
"/
{appId}/
positions"
)
public
class
PositionController
{
public
class
PositionController
extends
BaseRestController
{
@Autowired
@Autowired
private
PositionService
positionWorkService
;
private
PositionService
positionWorkService
;
@GetMapping
@GetMapping
@ApiOperation
(
"职位查询列表"
)
@ApiOperation
(
"职位查询列表"
)
@ApiImplicitParam
(
name
=
"positionName"
,
value
=
"职位名称"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
public
R
<
List
<
PositionVo
>>
selectPositionList
(
@ApiImplicitParam
(
name
=
"positionName"
,
value
=
"职位名称"
,
dataTypeClass
=
String
.
class
)})
public
R
<
List
<
PositionVo
>>
selectPositionList
(
@PathVariable
String
appId
,
@RequestParam
(
value
=
"positionName"
,
required
=
false
)
String
positionName
)
{
@RequestParam
(
value
=
"positionName"
,
required
=
false
)
String
positionName
)
{
return
R
.
ok
(
positionWorkService
.
selectPositionList
(
positionName
));
return
call
(()->(
positionWorkService
.
selectPositionList
(
dcClientHost
+
positionListUrl
,
token
,
appId
,
positionName
)
));
}
}
}
}
src/main/java/com/syc/slm/slmbi/controller/TokenController.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
controller
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.google.common.collect.Maps
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.RestTemplateUtils
;
import
com.syc.slm.slmbi.exception.SysException
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.sound.midi.SysexMessage
;
import
java.util.Map
;
/**
* slm-bi
* 获取token
* @author : lin
* @date : 2021-04-14 16:17
**/
@RestController
@RequestMapping
(
"/tokens"
)
@Api
(
value
=
"获取token"
,
tags
=
"获取token"
)
public
class
TokenController
extends
BaseRestController
{
@PostMapping
@ApiOperation
(
"获取token"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"account"
,
value
=
"15865516442"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"password"
,
value
=
"123456"
,
required
=
true
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"origin"
,
value
=
"0"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
})
public
R
<
Map
<
String
,
Object
>>
token
(
String
account
,
String
password
,
Integer
origin
){
return
call
(()->{
Map
<
String
,
Object
>
maps
=
Maps
.
newHashMap
();
String
uri
=
dcClientHost
+
"/dc/user/token?account="
+
account
+
"&password="
+
password
+
"&origin="
+
origin
;
ResponseEntity
<
Map
>
post
=
RestTemplateUtils
.
post
(
uri
,
Map
.
class
);
if
(
ObjectUtils
.
isNotEmpty
(
post
)){
Integer
code
=
(
int
)
post
.
getBody
().
get
(
"code"
);
if
(
code
!=
0
){
throw
new
SysException
(
post
.
getBody
().
get
(
"msg"
)+
""
);
}
Map
<
String
,
Object
>
data
=
(
Map
<
String
,
Object
>)
post
.
getBody
().
get
(
"data"
);
maps
.
put
(
"token"
,
data
.
get
(
"token"
));
maps
.
put
(
"appId"
,
data
.
get
(
"app_id"
));
}
return
maps
;
});
}
}
src/main/java/com/syc/slm/slmbi/controller/UserController.java
View file @
e691bc53
...
@@ -2,9 +2,11 @@ package com.syc.slm.slmbi.controller;
...
@@ -2,9 +2,11 @@ package com.syc.slm.slmbi.controller;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.slmbi.service.UserService
;
import
com.syc.slm.slmbi.service.UserService
;
import
com.syc.slm.slmbi.vo.UserTreeVo
;
import
com.syc.slm.slmbi.vo.UserVo
;
import
com.syc.slm.slmbi.vo.UserVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -18,19 +20,19 @@ import java.util.List;
...
@@ -18,19 +20,19 @@ import java.util.List;
* @author : lin
* @author : lin
* @date : 2021-03-25 18:45
* @date : 2021-03-25 18:45
**/
**/
@Api
(
value
=
"用户信息"
,
description
=
"用户信息接口"
)
@Api
(
value
=
"用户信息"
,
tags
=
"用户信息接口"
)
@RestController
@RestController
@RequestMapping
(
"/users"
)
@RequestMapping
(
"/
{appId}/
users"
)
public
class
UserController
{
public
class
UserController
extends
BaseRestController
{
@Autowired
@Autowired
private
UserService
userService
;
private
UserService
userService
;
@GetMapping
@GetMapping
@ApiOperation
(
"用户查询"
)
@ApiOperation
(
"用户查询
,左边树调用部门树不要传入部门名称,然后右边用户的搜索在页面匹配就好了,一开始会返回所有部门的用户回去
"
)
@ApiImplicitParam
(
name
=
"userName"
,
value
=
"用户名称"
)
@ApiImplicitParam
s
({
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)}
)
public
R
<
List
<
User
Vo
>>
selectUserList
(
@RequestParam
(
value
=
"userName"
,
required
=
false
)
String
userName
)
{
public
R
<
List
<
User
TreeVo
>>
selectUserList
(
@PathVariable
String
appId
)
{
return
R
.
ok
(
userService
.
selectUserList
(
userName
));
return
call
(()->(
userService
.
selectUserList
(
appId
,
dcClientHost
+
userTree
,
token
,
null
)
));
}
}
}
}
src/main/java/com/syc/slm/slmbi/controller/VariableController.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
controller
;
package
com
.
syc
.
slm
.
slmbi
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.google.common.collect.Maps
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.slmbi.dto.HistoryVariableDTO
;
import
com.syc.slm.common.core.util.RestTemplateUtils
;
import
com.syc.slm.slmbi.dto.RealTimeVariableDTO
;
import
com.syc.slm.slmbi.dto.*
;
import
com.syc.slm.slmbi.dto.VariableDTO
;
import
com.syc.slm.slmbi.service.VariableService
;
import
com.syc.slm.slmbi.service.VariableService
;
import
com.syc.slm.slmbi.vo.*
;
import
com.syc.slm.slmbi.vo.*
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -26,40 +25,87 @@ import java.util.Map;
...
@@ -26,40 +25,87 @@ import java.util.Map;
* @date : 2021-03-25 18:45
* @date : 2021-03-25 18:45
**/
**/
@RestController
@RestController
@RequestMapping
(
"/variables"
)
@RequestMapping
(
"/
{appId}/
variables"
)
@Api
(
description
=
"变量控件"
)
@Api
(
description
=
"变量控件"
,
tags
=
"变量控件"
)
public
class
VariableController
{
public
class
VariableController
extends
BaseRestController
{
@Autowired
@Autowired
private
VariableService
variableService
;
private
VariableService
variableService
;
@GetMapping
(
"/test"
)
public
Map
rest
(){
Map
<
String
,
String
>
maps
=
Maps
.
newHashMap
();
// @RequestParam(value = "token") String token,
// @RequestParam(value = "equipment_info_id", required = false) String equipmentInfoId,
// @RequestParam(value = "customer_id", required = false) String customerId,
// @RequestParam(value = "q_name", required = false) String qName,
// @RequestParam(value = "search_code", required = false, defaultValue = "false") boolean searchCode,
// @RequestParam(value = "search_model", required = false, defaultValue = "false") boolean searchModel,
// @RequestParam(value = "warranty_status", defaultValue = "0") int warrantStatus,
// @RequestParam(value = "page_num", required = false, defaultValue = "1") int pageNum,
// @RequestParam(value = "page_size", required = false, defaultValue = "15") int pageSize)
maps
.
put
(
"token"
,
"345aa488a820448dbb069ea4295d2b15"
);
maps
.
put
(
"appId"
,
"AAAAAA_9Cs4"
);
maps
.
put
(
"equipment_info_id"
,
null
);
maps
.
put
(
"customer_id"
,
null
);
maps
.
put
(
"q_name"
,
null
);
maps
.
put
(
"search_code"
,
null
);
maps
.
put
(
"search_model"
,
null
);
maps
.
put
(
"warranty_status"
,
null
);
maps
.
put
(
"page_num"
,
null
);
maps
.
put
(
"page_size"
,
null
);
Map
<
String
,
String
>
heads
=
Maps
.
newHashMap
();
heads
.
put
(
"token"
,
"345aa488a820448dbb069ea4295d2b15"
);
R
<
List
<
PanelTreeNodeVo
>>
newR
=
new
R
<>();
ResponseEntity
<
Map
>
rest
=
RestTemplateUtils
.
get
(
"http://localhost:2400/dc/{appId}/equipment/info/name/pull?token={token}&equipment_info_id={equipment_info_id}&customer_id={customer_id}&q_name={q_name}&search_code={search_code}&search_model={search_model}&warranty_status={warranty_status}&page_num={page_num}&page_size={page_size}"
,
heads
,
Map
.
class
,
maps
);
if
(
rest
!=
null
){
return
rest
.
getBody
();
}
return
null
;
}
@GetMapping
@GetMapping
@ApiOperation
(
"获取变量列表"
)
@ApiOperation
(
"获取变量列表"
)
public
R
<
IPage
<
VariableVo
>>
getVariableList
(
@RequestBody
VariableDTO
variableDTO
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
variableService
.
getVariableList
(
variableDTO
));
public
R
<
IPage
<
VariableVo
>>
getVariableList
(
@PathVariable
String
appId
,
VariableDTO
variableDTO
)
{
return
call
(()->
variableService
.
getVariableList
(
variableDTO
,
appId
,
token
,
dcClientHost
+
variableList
));
}
}
@GetMapping
(
"/real-time"
)
@GetMapping
(
"/real-time"
)
@ApiOperation
(
"获取变量实时数据"
)
@ApiOperation
(
"获取变量实时数据"
)
public
R
<
Map
<
String
,
List
<
Map
<
String
,
RealTimeVariableVo
>>>>
getVariableRealTimeDataList
(
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
@RequestBody
RealTimeVariableDTO
variableDTO
)
{
public
R
<
Map
<
String
,
List
<
Map
<
String
,
RealTimeVariableVo
>>>>
getVariableRealTimeDataList
(
@PathVariable
String
appId
,
return
R
.
ok
(
variableService
.
getVariableRealTimeDataList
(
variableDTO
));
RealTimeVariableDTO
variableDTO
)
{
return
call
(()->(
variableService
.
getVariableRealTimeDataList
(
variableDTO
)));
}
}
@GetMapping
(
"/source"
)
@GetMapping
(
"/source"
)
@ApiOperation
(
"获取变量来源列表"
)
@ApiOperation
(
"获取变量来源列表,默认值6"
)
public
R
<
List
<
VariableSourceVo
>>
getVariableSourceList
()
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
variableService
.
getVariableSourceList
());
public
R
<
List
<
VariableSourceVo
>>
getVariableSourceList
(
@PathVariable
String
appId
)
{
return
call
(()->
variableService
.
getVariableSourceList
());
}
}
@GetMapping
(
"/device"
)
@GetMapping
(
"/device"
)
@ApiOperation
(
"获取变量所属设备列表"
)
@ApiOperation
(
"获取变量所属设备列表"
)
public
R
<
List
<
VariableDeviceVo
>>
getVariableDeviceList
()
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
variableService
.
getVariableDeviceList
());
public
R
<
IPage
<
VariableDeviceVo
>>
getVariableDeviceList
(
@PathVariable
String
appId
,
QueryPageDTO
query
)
{
return
call
(()->(
variableService
.
getVariableDeviceList
(
token
,
appId
,
dcClientHost
+
deviceList
,
query
)));
}
}
@GetMapping
(
"/history"
)
@GetMapping
(
"/history"
)
@ApiOperation
(
"获取变量历史数据"
)
@ApiOperation
(
"获取变量历史数据"
)
public
R
<
Map
<
String
,
List
<
Map
<
String
,
HistoryVariableVo
>>>>
getVariableHistoryDataList
(
@RequestBody
HistoryVariableDTO
variableDTO
)
{
@ApiImplicitParam
(
name
=
"appId"
,
value
=
"租户id"
,
required
=
true
,
dataTypeClass
=
String
.
class
)
return
R
.
ok
(
variableService
.
getVariableHistoryDataList
(
variableDTO
));
public
R
<
Map
<
String
,
List
<
Map
<
String
,
HistoryVariableVo
>>>>
getVariableHistoryDataList
(
@PathVariable
String
appId
,
HistoryVariableDTO
variableDTO
)
{
return
call
(()->(
variableService
.
getVariableHistoryDataList
(
variableDTO
)));
}
}
}
}
src/main/java/com/syc/slm/slmbi/dao/InstrumentPanelConfigMapper.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.syc.slm.slmbi.entity.InstrumentPanelConfig
;
import
org.springframework.stereotype.Component
;
/**
* 仪表板配置
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Component
public
interface
InstrumentPanelConfigMapper
extends
BaseMapper
<
InstrumentPanelConfig
>
{
}
src/main/java/com/syc/slm/slmbi/dao/InstrumentPanelDraftMapper.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.syc.slm.slmbi.entity.InstrumentPanelDraft
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Set
;
/**
* 仪表板草稿
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Component
public
interface
InstrumentPanelDraftMapper
extends
BaseMapper
<
InstrumentPanelDraft
>
{
List
<
InstrumentPanelDraft
>
selectDraftList
(
@Param
(
"appId"
)
String
appId
,
@Param
(
"panelIds"
)
Set
<
String
>
panelIds
,
@Param
(
"officeIds"
)
String
officeIds
,
@Param
(
"userId"
)
String
userId
,
@Param
(
"roleId"
)
String
roleId
);
}
src/main/java/com/syc/slm/slmbi/dao/InstrumentPanelGroupMapper.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dao
;
package
com
.
syc
.
slm
.
slmbi
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.syc.slm.slmbi.entity.InstrumentPanelGroup
;
import
com.syc.slm.slmbi.entity.InstrumentPanelGroup
;
import
com.syc.slm.slmbi.vo.InstrumentPanelGroupVo
;
import
com.syc.slm.slmbi.vo.PanelTreeNodeVo
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Set
;
/**
/**
* slm-bi
* slm-bi
* 仪表板分组
* 仪表板分组
...
@@ -12,4 +20,19 @@ import org.springframework.stereotype.Component;
...
@@ -12,4 +20,19 @@ import org.springframework.stereotype.Component;
**/
**/
@Component
@Component
public
interface
InstrumentPanelGroupMapper
extends
BaseMapper
<
InstrumentPanelGroup
>
{
public
interface
InstrumentPanelGroupMapper
extends
BaseMapper
<
InstrumentPanelGroup
>
{
/**
* 根据id 批量修改分组状态
* @param groupIds
* @param recordStatus
*/
void
batchUpdateGroupByIds
(
@Param
(
"groupIds"
)
Set
<
String
>
groupIds
,
@Param
(
"recordStatus"
)
Integer
recordStatus
);
/**
* 根据分组名字匹配分组
* @param where
* @return
*/
List
<
InstrumentPanelGroupVo
>
selectGroupList
(
@Param
(
"ew"
)
LambdaQueryWrapper
<
InstrumentPanelGroup
>
where
);
List
<
PanelTreeNodeVo
>
selectGroupByIds
(
@Param
(
"finalPanelIds"
)
Set
<
String
>
finalPanelIds
,
@Param
(
"name"
)
String
name
);
}
}
src/main/java/com/syc/slm/slmbi/dao/InstrumentPanelMapper.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dao
;
package
com
.
syc
.
slm
.
slmbi
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.syc.slm.slmbi.entity.InstrumentPanel
;
import
com.syc.slm.slmbi.entity.InstrumentPanel
;
import
com.syc.slm.slmbi.vo.InstrumentPanelVo
;
import
com.syc.slm.slmbi.vo.PanelTreeNodeVo
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Set
;
/**
/**
* slm-bi
* slm-bi
* 仪表板
* 仪表板
...
@@ -12,4 +22,10 @@ import org.springframework.stereotype.Component;
...
@@ -12,4 +22,10 @@ import org.springframework.stereotype.Component;
**/
**/
@Component
@Component
public
interface
InstrumentPanelMapper
extends
BaseMapper
<
InstrumentPanel
>
{
public
interface
InstrumentPanelMapper
extends
BaseMapper
<
InstrumentPanel
>
{
void
batchUpdatePanelByIds
(
@Param
(
"panelIds"
)
Set
<
String
>
panelIds
,
@Param
(
"recordStatus"
)
Integer
recordStatus
);
IPage
<
InstrumentPanelVo
>
selectInstrumentPanelList
(
@Param
(
"page"
)
IPage
<
InstrumentPanelVo
>
page
,
@Param
(
"ew"
)
Wrapper
<
InstrumentPanel
>
wrapper
);
List
<
PanelTreeNodeVo
>
selectPanelByIds
(
@Param
(
"finalPanelIds"
)
Set
<
String
>
finalPanelIds
,
@Param
(
"name"
)
String
name
);
}
}
src/main/java/com/syc/slm/slmbi/dao/InstrumentPanelPermissionMapper.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.syc.slm.slmbi.entity.InstrumentPanelPermission
;
import
org.springframework.stereotype.Component
;
/**
* 仪表板权限
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Component
public
interface
InstrumentPanelPermissionMapper
extends
BaseMapper
<
InstrumentPanelPermission
>
{
}
src/main/java/com/syc/slm/slmbi/dao/InstrumentPanelTreeMapper.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dao
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.syc.slm.slmbi.entity.InstrumentPanelTree
;
import
com.syc.slm.slmbi.vo.PanelTreeNodeVo
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Set
;
/**
* 仪表板树聚合表
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Component
public
interface
InstrumentPanelTreeMapper
extends
BaseMapper
<
InstrumentPanelTree
>
{
void
batchUpdateTreeByIds
(
@Param
(
"treeIds"
)
Set
<
String
>
treeIds
,
@Param
(
"recordStatus"
)
Integer
recordStatus
);
}
src/main/java/com/syc/slm/slmbi/dto/CreateInstrumentPanelGroupDTO.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* @author liangbin
* @date 2021/3/31
*/
@ApiModel
(
"新增仪表板分组DTO"
)
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
CreateInstrumentPanelGroupDTO
extends
InstrumentPanelGroupDTO
{
@ApiModelProperty
(
value
=
"仪表板分组主键"
,
hidden
=
true
)
private
String
id
;
}
src/main/java/com/syc/slm/slmbi/dto/CustomPermissionDTO.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author liangbin
* @date 2021/3/31
*/
@ApiModel
(
value
=
"自定义权限DTO"
)
@Data
public
class
CustomPermissionDTO
{
@ApiModelProperty
(
value
=
"自定义权限类型"
,
required
=
true
)
private
String
type
;
@ApiModelProperty
(
value
=
"代表岗位、部门或个体用户id"
,
required
=
true
)
private
String
bizId
;
@ApiModelProperty
(
value
=
"代表岗位,部门,个体用户名称"
)
private
String
bizName
;
}
src/main/java/com/syc/slm/slmbi/dto/InstrumentPanelAssemblyDTO.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* slm-bi
* 仪表板组件DTO
* @author : lin
* @date : 2021-04-07 11:35
**/
@ApiModel
(
value
=
"仪表板组件DTO"
)
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
InstrumentPanelAssemblyDTO
{
@ApiModelProperty
(
value
=
"仪表板组件key"
,
required
=
true
)
private
String
key
;
@ApiModelProperty
(
value
=
"仪表板组件名称"
,
required
=
true
)
private
String
name
;
}
src/main/java/com/syc/slm/slmbi/dto/InstrumentPanelConfigDTO.java
View file @
e691bc53
...
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
...
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.util.List
;
/**
/**
* slm-bi
* slm-bi
* 仪表板样式,数据配置显示类
* 仪表板样式,数据配置显示类
...
@@ -17,12 +19,17 @@ import lombok.EqualsAndHashCode;
...
@@ -17,12 +19,17 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode
(
callSuper
=
false
)
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
InstrumentPanelConfigDTO
{
public
class
InstrumentPanelConfigDTO
{
@ApiModelProperty
(
value
=
"仪表板id"
,
required
=
true
)
@ApiModelProperty
(
value
=
"仪表板id"
,
required
=
true
)
private
String
instrumentPanelId
;
private
String
panelId
;
@ApiModelProperty
(
value
=
"仪表板配置详情,包含了样式,数据配置"
,
required
=
true
)
@ApiModelProperty
(
value
=
"仪表板配置详情,包含了样式,数据配置"
,
required
=
true
)
private
String
configDetails
;
private
String
configDetails
;
@ApiModelProperty
(
value
=
"仪表板配置组件集合"
,
required
=
true
)
private
List
<
InstrumentPanelAssemblyDTO
>
assemblys
;
@ApiModelProperty
(
value
=
"访问权限"
,
required
=
true
)
@ApiModelProperty
(
value
=
"访问权限"
,
required
=
true
)
private
InstrumentPanelPermissionDTO
visitPermission
;
private
InstrumentPanelPermissionDTO
permission
;
@ApiModelProperty
(
value
=
"组件结构"
,
required
=
true
)
private
String
assembly
;
}
}
src/main/java/com/syc/slm/slmbi/dto/InstrumentPanelGroupDTO.java
View file @
e691bc53
...
@@ -16,9 +16,9 @@ import lombok.EqualsAndHashCode;
...
@@ -16,9 +16,9 @@ import lombok.EqualsAndHashCode;
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
InstrumentPanelGroupDTO
{
public
class
InstrumentPanelGroupDTO
{
@ApiModelProperty
(
value
=
"仪表板分组主键
(保存非必填)
"
,
required
=
true
)
@ApiModelProperty
(
value
=
"仪表板分组主键"
,
required
=
true
)
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"仪表板分组父级主键
"
,
required
=
true
)
@ApiModelProperty
(
value
=
"仪表板分组父级主键
,非顶级分组时必填"
)
private
String
parentId
;
private
String
parentId
;
@ApiModelProperty
(
value
=
"仪表板分组名称"
,
required
=
true
)
@ApiModelProperty
(
value
=
"仪表板分组名称"
,
required
=
true
)
private
String
name
;
private
String
name
;
...
...
src/main/java/com/syc/slm/slmbi/dto/InstrumentPanelPermissionDTO.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dto
;
package
com
.
syc
.
slm
.
slmbi
.
dto
;
import
com.syc.slm.slmbi.enums.AccessType
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.util.List
;
/**
/**
* slm-bi
* slm-bi
* 仪表板权限
* 仪表板权限
...
@@ -13,26 +16,25 @@ import lombok.EqualsAndHashCode;
...
@@ -13,26 +16,25 @@ import lombok.EqualsAndHashCode;
* @date : 2021-03-25 19:05
* @date : 2021-03-25 19:05
**/
**/
@Data
@Data
@ApiModel
(
value
=
"仪表板权限DTO"
,
description
=
"仪表板权限DTO"
)
@ApiModel
(
value
=
"仪表板权限DTO"
,
description
=
"仪表板权限DTO"
)
@EqualsAndHashCode
(
callSuper
=
false
)
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
InstrumentPanelPermissionDTO
{
public
class
InstrumentPanelPermissionDTO
{
@ApiModelProperty
(
value
=
"主键id"
)
@ApiModelProperty
(
value
=
"仪表板主键id"
)
private
String
id
;
private
String
panelId
;
@ApiModelProperty
(
value
=
"仪表板id"
,
required
=
true
)
private
String
instrumentPanelId
;
@ApiModelProperty
(
value
=
"仪表板名称"
,
required
=
true
)
@ApiModelProperty
(
value
=
"仪表板名称"
,
required
=
true
)
private
String
panelName
;
private
String
instrumentPanelName
;
@ApiModelProperty
(
value
=
"仪表板分组id"
,
required
=
true
)
@ApiModelProperty
(
value
=
"仪表板分组id"
,
required
=
true
)
private
String
instrumentPanelGroupId
;
private
String
groupId
;
@ApiModelProperty
(
value
=
"仪表板分组名称"
,
required
=
true
)
private
String
instrumentPanelGroupName
;
@ApiModelProperty
(
value
=
"访问权限类型"
,
required
=
true
)
private
String
accessType
;
@ApiModelProperty
(
value
=
"存储类型,1代表岗位,2代表部门,3 代表个体用户"
,
required
=
true
)
@ApiModelProperty
(
value
=
"描述"
)
private
Integer
permissionType
;
private
String
description
;
@ApiModelProperty
(
value
=
"代表岗位1,部门2,个体用户id 3"
)
private
String
bizId
;
@ApiModelProperty
(
value
=
"自定义权限配置,当访问类型为CUSTOM时必填"
)
@ApiModelProperty
(
value
=
"代表岗位,部门,个体用户名称"
)
private
List
<
CustomPermissionDTO
>
customPermissions
;
private
String
bizName
;
}
}
src/main/java/com/syc/slm/slmbi/dto/
Search
InstrumentPanelDTO.java
→
src/main/java/com/syc/slm/slmbi/dto/
Query
InstrumentPanelDTO.java
View file @
e691bc53
...
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
...
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -16,18 +17,19 @@ import java.util.Date;
...
@@ -16,18 +17,19 @@ import java.util.Date;
**/
**/
@ApiModel
(
value
=
"查询仪表板列表DTO"
)
@ApiModel
(
value
=
"查询仪表板列表DTO"
)
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
fals
e
)
@EqualsAndHashCode
(
callSuper
=
tru
e
)
public
class
SearchInstrumentPanel
DTO
{
public
class
QueryInstrumentPanelDTO
extends
QueryPage
DTO
{
@ApiModelProperty
(
value
=
"仪表板名称"
)
@ApiModelProperty
(
value
=
"仪表板名称
,创建人名称,修改人名称
"
)
private
String
name
;
private
String
name
;
@ApiModelProperty
(
value
=
"仪表板归属分组"
)
@ApiModelProperty
(
value
=
"仪表板归属分组"
)
private
String
groupId
;
private
String
groupId
;
@ApiModelProperty
(
value
=
"创建人名称"
)
private
String
creatorName
;
@ApiModelProperty
(
value
=
"修改时间开始"
)
@ApiModelProperty
(
value
=
"修改人名称"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
private
String
updaterName
;
private
Date
updateTimeBegin
;
@ApiModelProperty
(
value
=
"修改时间"
)
@ApiModelProperty
(
value
=
"修改时间结束"
)
private
Date
updateTime
;
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@ApiModelProperty
(
value
=
"状态"
)
private
Date
updateTimeEnd
;
private
Integer
recordStatus
;
@ApiModelProperty
(
value
=
"发布状态"
)
private
String
published
;
}
}
src/main/java/com/syc/slm/slmbi/dto/QueryPageDTO.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author liangbin
* @date 2021/3/31
*/
@ApiModel
(
"分布查询参数"
)
@Data
public
class
QueryPageDTO
{
@ApiModelProperty
(
"页码"
)
private
Integer
current
=
1
;
@ApiModelProperty
(
"每页大小"
)
private
Integer
size
=
10
;
}
src/main/java/com/syc/slm/slmbi/dto/RealTimeVariableDTO.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
dto
;
package
com
.
syc
.
slm
.
slmbi
.
dto
;
import
com.syc.slm.slmbi.enums.StatisticsType
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -22,9 +23,9 @@ public class RealTimeVariableDTO {
...
@@ -22,9 +23,9 @@ public class RealTimeVariableDTO {
@ApiModelProperty
(
value
=
"时间间隔,代表(天,时,分,秒)"
,
required
=
true
)
@ApiModelProperty
(
value
=
"时间间隔,代表(天,时,分,秒)"
,
required
=
true
)
private
Integer
interval
;
private
Integer
interval
;
@ApiModelProperty
(
value
=
"统计类型,代表(合计值,平均值,最大值,最小值)"
,
required
=
true
)
@ApiModelProperty
(
value
=
"统计类型,代表(合计值,平均值,最大值,最小值)"
,
required
=
true
)
private
Integer
statisticsType
;
private
StatisticsType
statisticsType
;
@ApiModelProperty
(
value
=
"变量集合ids"
,
required
=
true
)
@ApiModelProperty
(
value
=
"变量集合ids"
,
required
=
true
)
private
List
<
String
>
variableIds
;
private
List
<
String
>
variableIds
;
@ApiModelProperty
(
value
=
"以变量为维度是1 , 以时间为维度是2"
,
required
=
true
)
@ApiModelProperty
(
value
=
"以变量为维度是1 , 以时间为维度是2"
,
required
=
true
)
private
Integer
dimension
;
private
Integer
dimension
;
//FIXME 考虑用枚举
}
}
src/main/java/com/syc/slm/slmbi/dto/SaveInstrumentPanelDTO.java
View file @
e691bc53
...
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
...
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.util.List
;
/**
/**
* slm-bi
* slm-bi
* 保存仪表板DTO
* 保存仪表板DTO
...
@@ -18,6 +20,16 @@ import lombok.EqualsAndHashCode;
...
@@ -18,6 +20,16 @@ import lombok.EqualsAndHashCode;
public
class
SaveInstrumentPanelDTO
{
public
class
SaveInstrumentPanelDTO
{
@ApiModelProperty
(
value
=
"仪表板名称"
,
required
=
true
)
@ApiModelProperty
(
value
=
"仪表板名称"
,
required
=
true
)
private
String
name
;
private
String
name
;
@ApiModelProperty
(
value
=
"仪表板归属分组"
,
required
=
true
)
@ApiModelProperty
(
value
=
"仪表板归属分组"
,
required
=
true
)
private
String
groupId
;
private
String
groupId
;
@ApiModelProperty
(
value
=
"仪表板配置详情,包含了样式,数据配置"
,
required
=
true
)
private
String
configDetails
;
@ApiModelProperty
(
value
=
"仪表板配置组件集合"
,
required
=
true
)
private
List
<
InstrumentPanelAssemblyDTO
>
assemblys
;
@ApiModelProperty
(
value
=
"访问权限"
,
required
=
true
)
private
InstrumentPanelPermissionDTO
permission
;
}
}
src/main/java/com/syc/slm/slmbi/dto/VariableDTO.java
View file @
e691bc53
...
@@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode;
...
@@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode;
@Data
@Data
@ApiModel
(
value
=
"变量DTO"
)
@ApiModel
(
value
=
"变量DTO"
)
@EqualsAndHashCode
(
callSuper
=
false
)
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
VariableDTO
{
public
class
VariableDTO
extends
QueryPageDTO
{
@ApiModelProperty
(
value
=
"变量来源"
)
@ApiModelProperty
(
value
=
"变量来源"
)
private
String
sourceId
;
private
String
sourceId
;
@ApiModelProperty
(
value
=
"所属设备"
)
@ApiModelProperty
(
value
=
"所属设备"
)
...
@@ -24,4 +24,5 @@ public class VariableDTO {
...
@@ -24,4 +24,5 @@ public class VariableDTO {
private
String
variableName
;
private
String
variableName
;
@ApiModelProperty
(
value
=
"描述"
)
@ApiModelProperty
(
value
=
"描述"
)
private
String
description
;
private
String
description
;
}
}
src/main/java/com/syc/slm/slmbi/entity/BaseEntity.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
entity
;
package
com
.
syc
.
slm
.
slmbi
.
entity
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.Date
;
/**
/**
...
@@ -17,23 +22,49 @@ import java.util.Date;
...
@@ -17,23 +22,49 @@ import java.util.Date;
**/
**/
@ApiModel
(
description
=
"公共的实体类"
)
@ApiModel
(
description
=
"公共的实体类"
)
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
BaseEntity
<
T
extends
Model
<?>>
extends
Model
<
T
>
{
public
class
BaseEntity
<
T
extends
Model
<?>>
extends
Model
<
T
>
{
/**
* 主键
*/
@TableId
@ApiModelProperty
(
value
=
"主键"
)
protected
String
id
;
/**
* 租户id
*/
@ApiModelProperty
(
value
=
"租户id"
)
@TableField
(
fill
=
FieldFill
.
INSERT
)
protected
String
appId
;
@ApiModelProperty
(
value
=
"创建人主键"
)
@ApiModelProperty
(
value
=
"创建人主键"
)
private
String
creator
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
protected
String
creator
;
@ApiModelProperty
(
value
=
"创建人名称"
)
@ApiModelProperty
(
value
=
"创建人名称"
)
private
String
creatorName
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
protected
String
creatorName
;
@ApiModelProperty
(
value
=
"创建时间"
)
@ApiModelProperty
(
value
=
"创建时间"
)
private
String
createTime
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
protected
Date
createTime
;
@ApiModelProperty
(
value
=
"修改人主键"
)
@ApiModelProperty
(
value
=
"修改人主键"
)
private
String
updater
;
@TableField
(
fill
=
FieldFill
.
UPDATE
)
protected
String
updater
;
@ApiModelProperty
(
value
=
"修改人名称"
)
@ApiModelProperty
(
value
=
"修改人名称"
)
private
String
updaterName
;
@TableField
(
fill
=
FieldFill
.
UPDATE
)
protected
String
updaterName
;
@ApiModelProperty
(
value
=
"修改时间"
)
@ApiModelProperty
(
value
=
"修改时间"
)
private
Date
updateTime
;
@TableField
(
fill
=
FieldFill
.
UPDATE
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
protected
Date
updateTime
;
@ApiModelProperty
(
value
=
"状态"
)
@ApiModelProperty
(
value
=
"状态"
)
private
Integer
recordStatus
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
protected
Integer
recordStatus
;
@ApiModelProperty
(
value
=
"描述"
)
@ApiModelProperty
(
value
=
"描述"
)
private
String
description
;
protected
String
description
;
@Override
protected
Serializable
pkVal
()
{
return
id
;
}
}
}
src/main/java/com/syc/slm/slmbi/entity/CurrentUser.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
entity
;
import
lombok.Data
;
/**
* slm-bi
* 当前用户
* @author : lin
* @date : 2021-04-16 18:30
**/
@Data
public
class
CurrentUser
{
private
String
uid
;
private
String
appId
;
private
String
platformId
;
private
String
name
;
private
String
token
;
}
src/main/java/com/syc/slm/slmbi/entity/InstrumentPanel.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
entity
;
package
com
.
syc
.
slm
.
slmbi
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -15,16 +16,25 @@ import lombok.EqualsAndHashCode;
...
@@ -15,16 +16,25 @@ import lombok.EqualsAndHashCode;
@ApiModel
(
description
=
"仪表板entity"
)
@ApiModel
(
description
=
"仪表板entity"
)
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"instrument_panel"
)
public
class
InstrumentPanel
extends
BaseEntity
<
InstrumentPanel
>{
public
class
InstrumentPanel
extends
BaseEntity
<
InstrumentPanel
>{
@ApiModelProperty
(
value
=
"仪表板主键"
)
private
String
id
;
@ApiModelProperty
(
value
=
"仪表板名称"
)
@ApiModelProperty
(
value
=
"仪表板名称"
)
private
String
name
;
private
String
name
;
@ApiModelProperty
(
value
=
"仪表板归属分组"
)
@ApiModelProperty
(
value
=
"仪表板归属分组"
)
private
String
groupId
;
private
String
groupId
;
@ApiModelProperty
(
value
=
"访问权限(公开 1,自定义 2,私有 3)"
)
@ApiModelProperty
(
value
=
"访问权限"
)
private
String
visitPermission
;
private
String
accessPermission
;
@ApiModelProperty
(
value
=
"发布状态"
)
private
String
published
;
public
InstrumentPanel
()
{
}
public
InstrumentPanel
(
String
id
,
String
name
,
String
groupId
,
String
accessPermission
,
String
published
)
{
super
.
id
=
id
;
this
.
name
=
name
;
this
.
groupId
=
groupId
;
this
.
accessPermission
=
accessPermission
;
this
.
published
=
published
;
}
}
}
src/main/java/com/syc/slm/slmbi/entity/InstrumentPanelConfig.java
View file @
e691bc53
...
@@ -20,7 +20,9 @@ public class InstrumentPanelConfig extends BaseEntity<InstrumentPanelConfig>{
...
@@ -20,7 +20,9 @@ public class InstrumentPanelConfig extends BaseEntity<InstrumentPanelConfig>{
@ApiModelProperty
(
value
=
"主键id"
)
@ApiModelProperty
(
value
=
"主键id"
)
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"仪表板id"
)
@ApiModelProperty
(
value
=
"仪表板id"
)
private
String
instrumentP
anelId
;
private
String
p
anelId
;
@ApiModelProperty
(
value
=
"仪表板配置详情,包含了样式,数据配置"
)
@ApiModelProperty
(
value
=
"仪表板配置详情,包含了样式,数据配置"
)
private
String
configDetails
;
private
String
configDetails
;
@ApiModelProperty
(
value
=
"发布状态"
)
private
String
published
;
}
}
src/main/java/com/syc/slm/slmbi/entity/InstrumentPanelDraft.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* 仪表板草稿
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Data
@TableName
(
"instrument_panel_draft"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"仪表板草稿"
)
public
class
InstrumentPanelDraft
extends
BaseEntity
<
InstrumentPanelDraft
>
{
/**
* 仪表板名字
*/
@ApiModelProperty
(
value
=
"仪表板名字"
)
private
String
name
;
/**
* 仪表板归属分组
*/
@ApiModelProperty
(
value
=
"仪表板归属分组"
)
private
String
groupId
;
/**
* 访问权限
*/
@ApiModelProperty
(
value
=
"访问权限"
)
private
String
accessPermission
;
/**
* 状态(发布,下线)
*/
@ApiModelProperty
(
value
=
"状态(发布,下线)"
)
private
String
published
;
@ApiModelProperty
(
value
=
"仪表板id"
)
private
String
panelId
;
}
src/main/java/com/syc/slm/slmbi/entity/InstrumentPanelGroup.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
entity
;
package
com
.
syc
.
slm
.
slmbi
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
...
@@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode;
@ApiModel
(
description
=
"仪表板分组entity"
)
@ApiModel
(
description
=
"仪表板分组entity"
)
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"instrument_panel_group"
)
public
class
InstrumentPanelGroup
extends
BaseEntity
<
InstrumentPanelGroup
>{
public
class
InstrumentPanelGroup
extends
BaseEntity
<
InstrumentPanelGroup
>{
@ApiModelProperty
(
value
=
"仪表板分组主键"
)
@ApiModelProperty
(
value
=
"仪表板分组主键"
)
private
String
id
;
private
String
id
;
...
...
src/main/java/com/syc/slm/slmbi/entity/InstrumentPanelPermission.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* 仪表板权限
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Data
@TableName
(
"instrument_panel_permission"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"仪表板权限"
)
public
class
InstrumentPanelPermission
extends
BaseEntity
<
InstrumentPanelPermission
>
{
/**
* 仪表板id
*/
@ApiModelProperty
(
value
=
"仪表板id"
)
private
String
panelId
;
/**
* 业务id(岗位,部门,个体用户)
*/
@ApiModelProperty
(
value
=
"业务id(岗位,部门,个体用户)"
)
private
String
bizId
;
/**
* 业务名称(岗位,部门,个体用户名称)
*/
@ApiModelProperty
(
value
=
"业务名称(岗位,部门,个体用户名称)"
)
private
String
bizName
;
/**
* 业务归属类型
*/
@ApiModelProperty
(
value
=
"业务归属类型"
)
private
String
bizType
;
/**
* 1代表第一版数据,2代表保存发布再次保存得数据
*/
@ApiModelProperty
(
value
=
"1代表第一版数据,2代表保存发布再次保存得数据"
)
private
String
published
;
}
src/main/java/com/syc/slm/slmbi/entity/InstrumentPanelTree.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* 仪表板树聚合表
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Data
@TableName
(
"instrument_panel_tree"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"仪表板树聚合表"
)
public
class
InstrumentPanelTree
extends
BaseEntity
<
InstrumentPanelTree
>
{
/**
* 节点全路径id
*/
@ApiModelProperty
(
value
=
"节点全路径id"
)
private
String
fullId
;
@ApiModelProperty
(
value
=
"节点名字"
)
private
String
name
;
/**
* 节点全路径
*/
@ApiModelProperty
(
value
=
"节点全路径"
)
private
String
fullName
;
/**
* 节点类型
*/
@ApiModelProperty
(
value
=
"节点类型"
)
private
String
nodeType
;
@ApiModelProperty
(
value
=
"组件key"
)
private
String
assemblyKey
;
@ApiModelProperty
(
value
=
"父级id"
)
@TableField
(
exist
=
false
)
private
String
parentId
;
}
src/main/java/com/syc/slm/slmbi/enums/AccessType.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
enums
;
/**
* 访问权限类型
*
* @author liangbin
* @date 2021/3/31
*/
public
enum
AccessType
{
// 公开
PUBLIC
(
"public"
),
// 私有
PRIVATE
(
"private"
),
// 自定义
CUSTOM
(
"custom"
);
public
String
value
;
AccessType
(
String
v
)
{
value
=
v
;
}}
src/main/java/com/syc/slm/slmbi/enums/CustomPermissionType.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
enums
;
/**
* 自定义权限的类型
*
* @author liangbin
* @date 2021/3/31
*/
public
enum
CustomPermissionType
{
//岗位
POSITION
(
"position"
),
//部门
DEPARTMENT
(
"department"
),
//用户
USER
(
"user"
);
public
String
value
;
CustomPermissionType
(
String
v
){
value
=
v
;
}
}
src/main/java/com/syc/slm/slmbi/enums/NodeType.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
enums
;
/**
* @author lin
* @date 2021/4/6
*/
public
enum
NodeType
{
/**
* 仪表板
*/
PANEL
(
"panel"
),
/**
* 仪表板分组
*/
GROUP
(
"group"
),
/**
* 仪表板组件
*/
ASSEMBLY
(
"assembly"
);
public
String
value
;
NodeType
(
String
v
){
value
=
v
;
}
}
src/main/java/com/syc/slm/slmbi/enums/PublishedStatus.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
enums
;
/**
* @author lin
* @date 2021/4/7
*/
public
enum
PublishedStatus
{
/**
* 发布
*/
PUBLISHED
(
"published"
),
/**
* 待发布
*/
WAIT_PUBLISHED
(
"wait_published"
),
/**
* 下线
*/
OFFLINE
(
"offline"
),
DRAFT
(
"draft"
);
public
String
value
;
PublishedStatus
(
String
v
)
{
value
=
v
;
}}
src/main/java/com/syc/slm/slmbi/enums/StatisticsType.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
enums
;
/**
* 统计类型
*
* @author liangbin
* @date 2021/3/31
*/
public
enum
StatisticsType
{
// 合计值
SUM
,
// 平均值
AVG
,
// 最大值
MAX
,
// 最小值
MIN
;
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
StatisticsType
.
MAX
.
name
());
}
}
src/main/java/com/syc/slm/slmbi/exception/SysException.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
exception
;
import
com.syc.slm.common.core.constant.CommonConstants
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
org.apache.commons.lang3.StringUtils
;
import
java.io.ByteArrayOutputStream
;
import
java.io.PrintWriter
;
/**
* slm-bi
* 业务异常类
*
* @author : lin
* @date : 2021-04-06 09:14
**/
public
class
SysException
extends
RuntimeException
{
private
int
code
;
private
String
msg
;
private
Object
data
;
private
String
debugMsg
;
public
int
getCode
()
{
return
code
;
}
public
String
getMsg
()
{
return
msg
;
}
public
Object
getData
()
{
return
data
;
}
public
String
getDebugMsg
()
{
return
debugMsg
;
}
public
SysException
(
String
msg
)
{
this
(
msg
,
null
,
null
);
}
public
SysException
(
String
msg
,
String
debugInfo
)
{
this
.
msg
=
msg
;
this
.
debugMsg
=
debugInfo
;
this
.
code
=
CommonConstants
.
FAIL
;
}
public
SysException
(
String
msg
,
Exception
originalException
)
{
this
(
msg
,
originalException
,
null
);
}
private
SysException
(
String
msg
,
Exception
originalException
,
Object
pData
)
{
super
(
msg
);
code
=
CommonConstants
.
FAIL
;
this
.
msg
=
msg
;
data
=
pData
;
if
(
originalException
!=
null
)
{
ByteArrayOutputStream
outputStream
=
new
ByteArrayOutputStream
();
PrintWriter
writer
=
new
PrintWriter
(
outputStream
);
originalException
.
printStackTrace
(
writer
);
debugMsg
=
new
String
(
outputStream
.
toByteArray
());
}
}
public
SysException
(
int
dwCode
,
String
szMsg
)
{
this
(
dwCode
,
szMsg
,
null
);
}
private
SysException
(
int
dwCode
,
String
szMsg
,
Exception
originalException
)
{
super
(
szMsg
);
code
=
dwCode
;
msg
=
szMsg
;
if
(
originalException
!=
null
)
{
ByteArrayOutputStream
outputStream
=
new
ByteArrayOutputStream
();
PrintWriter
writer
=
new
PrintWriter
(
outputStream
);
originalException
.
printStackTrace
(
writer
);
debugMsg
=
new
String
(
outputStream
.
toByteArray
());
}
}
@Override
public
String
toString
()
{
if
(
StringUtils
.
isNotEmpty
(
msg
))
{
return
msg
;
}
if
(
StringUtils
.
isNotEmpty
(
debugMsg
))
{
return
debugMsg
;
}
if
(
data
!=
null
)
{
return
SlmConstants
.
gson
.
toJson
(
data
);
}
return
code
+
""
;
}
}
src/main/java/com/syc/slm/slmbi/function/Action0.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
function
;
import
java.io.Serializable
;
/**
* @author lin
* @date 2021/4/1
*/
@FunctionalInterface
public
interface
Action0
extends
Serializable
{
/**
* 调用
*/
void
call
();
}
src/main/java/com/syc/slm/slmbi/function/Action1.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
function
;
import
java.io.Serializable
;
/**
* @author lin
* @date 2021/4/1
*/
public
interface
Action1
<
T
>
extends
Serializable
{
void
call
(
T
t
);
@SafeVarargs
static
<
T1
>
Action1
<
T1
>[]
of
(
Action1
<
T1
>...
funcs
){
return
funcs
;
}
}
src/main/java/com/syc/slm/slmbi/function/Action2.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
function
;
import
java.io.Serializable
;
/**
* @author lin
* @date 2021/4/1
*/
public
interface
Action2
<
T1
,
T2
>
extends
Serializable
{
void
call
(
T1
t1
,
T2
t2
);
@SafeVarargs
static
<
T1
,
T2
>
Action2
<
T1
,
T2
>[]
of
(
Action2
<
T1
,
T2
>...
funcs
){
return
funcs
;
}
}
src/main/java/com/syc/slm/slmbi/function/Function2.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
function
;
import
java.io.Serializable
;
/**
* @author lin
* @date 2021/4/1
*/
public
interface
Function2
<
T1
,
T2
,
R
>
extends
Serializable
{
R
get
(
T1
t1
,
T2
t2
);
@SafeVarargs
static
<
T1
,
T2
>
Function2
<
T1
,
T2
,?>[]
of
(
Function2
<
T1
,
T2
,?>...
funcs
){
return
funcs
;
}
}
src/main/java/com/syc/slm/slmbi/handler/SysExceptionHandler.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
handler
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.slmbi.exception.SysException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
javax.servlet.http.HttpServletRequest
;
/**
* slm-bi
* 全局业务异常处理
* @author : lin
* @date : 2021-04-16 17:34
**/
@ControllerAdvice
@Slf4j
public
class
SysExceptionHandler
{
/**
* 业务异常
*
* @param e exception
* @return exception
*/
@ExceptionHandler
(
SysException
.
class
)
@ResponseBody
public
R
<
Object
>
handleSysException
(
SysException
e
,
HttpServletRequest
request
)
{
log
.
info
(
e
.
getMsg
());
return
R
.
bad
(
e
.
getMsg
(),
e
.
getDebugMsg
());
}
}
src/main/java/com/syc/slm/slmbi/service/DeptService.java
View file @
e691bc53
...
@@ -5,16 +5,20 @@ import com.syc.slm.slmbi.vo.DeptVo;
...
@@ -5,16 +5,20 @@ import com.syc.slm.slmbi.vo.DeptVo;
import
java.util.List
;
import
java.util.List
;
/**
/**
* slm-bi
* slm-bi
*
部门
*
变量
*
*
* @author : lin
* @author : lin
* @date : 2021-03-25 1
5:10
* @date : 2021-03-25 1
6:17
**/
**/
public
interface
DeptService
{
public
interface
DeptService
{
/**
/**
* 获取部门列表
* 获取部门列表
* @param uri
* @param token
* @param appId
* @param deptName
* @param deptName
* @return
* @return
*/
*/
List
<
DeptVo
>
selectDeptList
(
String
deptName
);
List
<
DeptVo
>
selectPositionList
(
String
uri
,
String
token
,
String
appId
,
String
deptName
);
}
}
src/main/java/com/syc/slm/slmbi/service/InfluxService.java
deleted
100644 → 0
View file @
a0c723fd
package
com
.
syc
.
slm
.
slmbi
.
service
;
import
com.syc.slm.slmbi.config.InfluxdbConfig
;
import
okhttp3.OkHttpClient
;
import
org.apache.http.ssl.SSLContexts
;
import
org.influxdb.InfluxDB
;
import
org.influxdb.InfluxDBFactory
;
import
org.influxdb.dto.BatchPoints
;
import
org.influxdb.dto.Point
;
import
org.influxdb.dto.Query
;
import
org.influxdb.dto.QueryResult
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
javax.net.ssl.*
;
import
java.security.SecureRandom
;
import
java.security.cert.X509Certificate
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
/**
* 创建时间:2018-01-28
* <p>修改时间:2018-01-28
* <p>类说明:TOTO
*
* @author luke
* @version 1.0
*/
@Component
public
class
InfluxService
{
private
static
final
String
PORT
=
"8635"
;
@Autowired
private
InfluxdbConfig
influxdbConfig
;
private
InfluxDB
influxdb
;
@PostConstruct
private
void
init
()
{
if
(
PORT
.
equals
(
influxdbConfig
.
port
))
{
// 华为云: https + getBuilder
influxdb
=
InfluxDBFactory
.
connect
(
String
.
format
(
"https://%s:%s"
,
influxdbConfig
.
host
,
influxdbConfig
.
port
),
influxdbConfig
.
username
,
influxdbConfig
.
password
,
getBuilder
());
}
else
{
influxdb
=
InfluxDBFactory
.
connect
(
String
.
format
(
"http://%s:%s"
,
influxdbConfig
.
host
,
influxdbConfig
.
port
),
influxdbConfig
.
username
,
influxdbConfig
.
password
);
}
}
/**
* 插入
*
* @param measurement 表
* @param tags 标签
* @param fields 字段
*/
public
void
insert
(
String
database
,
String
measurement
,
Map
<
String
,
String
>
tags
,
Map
<
String
,
Object
>
fields
)
{
Point
.
Builder
builder
=
Point
.
measurement
(
measurement
);
builder
.
tag
(
tags
);
builder
.
fields
(
fields
);
influxdb
.
write
(
database
,
""
,
builder
.
build
());
}
/**
* 批量插入
*
* @param measurement 表
* @param tagsList 标签
* @param fieldsList 字段
*/
public
void
insert
(
String
database
,
String
measurement
,
List
<
Map
<
String
,
String
>>
tagsList
,
List
<
Map
<
String
,
Object
>>
fieldsList
)
{
BatchPoints
.
Builder
bpBuilder
=
BatchPoints
.
database
(
database
);
if
(
fieldsList
!=
null
&&
fieldsList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
fieldsList
.
size
();
i
++)
{
Point
.
Builder
builder
=
Point
.
measurement
(
measurement
);
builder
.
tag
(
tagsList
.
get
(
i
));
builder
.
fields
(
fieldsList
.
get
(
i
));
bpBuilder
.
point
(
builder
.
build
());
}
}
influxdb
.
write
(
bpBuilder
.
build
());
}
/**
* 按时间插入数据
*
* @param measurement 表
* @param tags 标签
* @param fields 字段
*/
public
void
insertByTime
(
String
database
,
String
measurement
,
Map
<
String
,
String
>
tags
,
Map
<
String
,
Object
>
fields
,
long
time
)
{
Point
.
Builder
builder
=
Point
.
measurement
(
measurement
);
builder
.
tag
(
tags
);
builder
.
fields
(
fields
);
builder
.
time
(
time
,
TimeUnit
.
MILLISECONDS
);
influxdb
.
write
(
database
,
""
,
builder
.
build
());
}
/**
* 查询
*
* @param command 查询语句
* @return
*/
public
QueryResult
query
(
String
database
,
String
command
)
{
return
influxdb
.
query
(
new
Query
(
command
,
database
));
}
/**
* 免除SSL
*
* @return
*/
private
static
OkHttpClient
.
Builder
getBuilder
()
{
OkHttpClient
.
Builder
builder
=
new
OkHttpClient
.
Builder
();
builder
.
sslSocketFactory
(
defaultSslSocketFactory
(),
defaultTrustManager
());
builder
.
hostnameVerifier
(
noopHostnameVerifier
());
return
builder
;
}
private
static
X509TrustManager
defaultTrustManager
()
{
return
new
X509TrustManager
()
{
@Override
public
X509Certificate
[]
getAcceptedIssuers
()
{
return
new
X509Certificate
[
0
];
}
@Override
public
void
checkClientTrusted
(
X509Certificate
[]
certs
,
String
authType
)
{
}
@Override
public
void
checkServerTrusted
(
X509Certificate
[]
certs
,
String
authType
)
{
}
};
}
private
static
SSLSocketFactory
defaultSslSocketFactory
()
{
try
{
SSLContext
sslcontext
=
SSLContexts
.
createDefault
();
sslcontext
.
init
(
null
,
new
TrustManager
[]
{
defaultTrustManager
()},
new
SecureRandom
());
return
sslcontext
.
getSocketFactory
();
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
private
static
HostnameVerifier
noopHostnameVerifier
()
{
return
(
s
,
sslSession
)
->
true
;
}
}
src/main/java/com/syc/slm/slmbi/service/InstrumentPanelConfigService.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
;
package
com
.
syc
.
slm
.
slmbi
.
service
;
import
com.
sun.istack.NotNull
;
import
com.
baomidou.mybatisplus.extension.service.IService
;
import
com.syc.slm.slmbi.dto.InstrumentPanelConfigDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelConfigDTO
;
import
com.syc.slm.slmbi.entity.InstrumentPanelConfig
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* slm-bi
* slm-bi
* 仪表板配置
* 仪表板配置
...
@@ -11,7 +16,15 @@ import com.syc.slm.slmbi.vo.InstrumentPanelConfigVo;
...
@@ -11,7 +16,15 @@ import com.syc.slm.slmbi.vo.InstrumentPanelConfigVo;
* @author : lin
* @author : lin
* @date : 2021-03-25 15:10
* @date : 2021-03-25 15:10
**/
**/
public
interface
InstrumentPanelConfigService
{
public
interface
InstrumentPanelConfigService
extends
IService
<
InstrumentPanelConfig
>{
/**
* 根据仪表板id获取对应已发布配置
* @param instrumentPanelId
* @return
*/
InstrumentPanelConfigVo
getPublishConfigByPanelId
(
@NotNull
String
instrumentPanelId
);
/**
/**
* 根据仪表板id获取对应配置
* 根据仪表板id获取对应配置
...
@@ -19,16 +32,62 @@ public interface InstrumentPanelConfigService {
...
@@ -19,16 +32,62 @@ public interface InstrumentPanelConfigService {
* @return
* @return
*/
*/
InstrumentPanelConfigVo
getConfigByPanelId
(
@NotNull
String
instrumentPanelId
);
InstrumentPanelConfigVo
getConfigByPanelId
(
@NotNull
String
instrumentPanelId
);
/**
/**
* 保存发布仪表板配置
* 保存发布仪表板配置
* @param appId
* @param config
* @param config
* @return
* @return
*/
*/
String
publish
(
InstrumentPanelConfigDTO
config
);
String
publish
(
String
appId
,
InstrumentPanelConfigDTO
config
);
/**
/**
* 保存仪表板配置
* 保存仪表板配置
* @param appId
* @param config
* @param config
* @return
* @return
*/
*/
String
saveConfig
(
InstrumentPanelConfigDTO
config
);
String
saveConfig
(
String
appId
,
InstrumentPanelConfigDTO
config
);
/**
* 根据仪表板id删除仪表板配置
* @param panelId
* @param publishedStatus
*/
void
delConfig
(
@NotNull
String
panelId
,
String
publishedStatus
);
/**
* 根据仪表板详情保存仪表盘配置
* @param panelId
* @param configDetails
* @param publishStatus
*/
void
savePanelConfig
(
String
panelId
,
String
configDetails
,
String
publishStatus
);
/**
* 发布仪表板把对应配置状态修改为发布
* @param ids
*/
void
publishConfigByPanelIds
(
List
<
String
>
ids
);
/**
* 根据仪表板id以及状态获取仪表板配置
* @param panelId
* @param publishStatus
* @return
*/
List
<
InstrumentPanelConfig
>
getConfigByPanelIdAndPublishStatus
(
String
panelId
,
String
publishStatus
);
/**
* 下线仪表盘配置
* @param panelId
* @param publishStatus
*/
void
offlineConfig
(
String
panelId
,
String
publishStatus
);
/**
* 根据仪表id获取仪表板配置
* @param panelId
*/
Map
<
String
,
String
>
getAssemblyConfig
(
@NotNull
String
panelId
);
}
}
src/main/java/com/syc/slm/slmbi/service/InstrumentPanelDraftService.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.syc.slm.slmbi.entity.InstrumentPanel
;
import
com.syc.slm.slmbi.entity.InstrumentPanelDraft
;
import
java.util.List
;
import
java.util.Set
;
/**
* 仪表板草稿
*
* @author lin
* @date 2021-04-01 10:52:44
*/
public
interface
InstrumentPanelDraftService
extends
IService
<
InstrumentPanelDraft
>
{
/**
* 发布仪表板生成仪表板草稿
* @param panels
*/
void
saveDrafts
(
List
<
InstrumentPanel
>
panels
);
/**
* 根据仪表板id获取 仪表板草稿
* @param panelIds
* @return
*/
List
<
InstrumentPanelDraft
>
getByIds
(
Set
<
String
>
panelIds
);
/**
* 获取仪表板信息
* @param appId
* @param panelIds
* @param officeIds
* @param userId
* @param roleId
* @return
*/
List
<
InstrumentPanelDraft
>
selectDraftList
(
String
appId
,
Set
<
String
>
panelIds
,
String
officeIds
,
String
userId
,
String
roleId
);
/**
* 根据仪表板id获取 仪表板草稿
* @param panelId
* @return
*/
InstrumentPanelDraft
getByPanelId
(
String
panelId
);
}
src/main/java/com/syc/slm/slmbi/service/InstrumentPanelGroupService.java
View file @
e691bc53
...
@@ -4,10 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
...
@@ -4,10 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
import
com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO
;
import
com.syc.slm.slmbi.entity.InstrumentPanelGroup
;
import
com.syc.slm.slmbi.entity.InstrumentPanelGroup
;
import
com.syc.slm.slmbi.vo.InstrumentPanelGroupVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelGroupVo
;
import
com.syc.slm.slmbi.vo.Panel
Group
Vo
;
import
com.syc.slm.slmbi.vo.Panel
TreeNode
Vo
;
import
lombok.NonNull
;
import
lombok.NonNull
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
/**
/**
* slm-bi
* slm-bi
...
@@ -20,12 +21,15 @@ public interface InstrumentPanelGroupService extends IService<InstrumentPanelGro
...
@@ -20,12 +21,15 @@ public interface InstrumentPanelGroupService extends IService<InstrumentPanelGro
/**
/**
* 查询仪表板分组
* 查询仪表板分组
* @param appId
* @param name
* @return
* @return
*/
*/
List
<
InstrumentPanelGroupVo
>
selectGroupList
();
List
<
InstrumentPanelGroupVo
>
selectGroupList
(
String
appId
,
String
name
);
/**
/**
* 删除仪表板分组
* 删除仪表板分组
*
* @param groupId
* @param groupId
* @return
* @return
*/
*/
...
@@ -34,29 +38,24 @@ public interface InstrumentPanelGroupService extends IService<InstrumentPanelGro
...
@@ -34,29 +38,24 @@ public interface InstrumentPanelGroupService extends IService<InstrumentPanelGro
/**
/**
* 修改仪表板分组
* 修改仪表板分组
* @param group
* @param group
* @param appId
* @return
* @return
*/
*/
String
updateGroup
(
InstrumentPanelGroupDTO
group
);
String
updateGroup
(
@NonNull
InstrumentPanelGroupDTO
group
,
String
appId
);
/**
/**
* 保存仪表板分组
* 保存仪表板分组
* @param group
* @param group
* @param appId
* @return
* @return
*/
*/
String
saveGroup
(
InstrumentPanelGroupDTO
group
);
String
saveGroup
(
@NonNull
InstrumentPanelGroupDTO
group
,
String
appId
);
/**
/**
* 加载仪表板树
* 根据分组id集合 已经名称批量查询仪表板分组
* @param name
* @param finalPanelIds
* @return
*/
List
<
PanelGroupVo
>
loadTrees
(
String
name
);
/**
* 查询下一节点分组
* @param groupId
* @param name
* @param name
* @return
* @return
*/
*/
List
<
Panel
GroupVo
>
children
(
String
groupId
,
String
name
);
List
<
Panel
TreeNodeVo
>
selectGroupByIds
(
Set
<
String
>
finalPanelIds
,
String
name
);
}
}
src/main/java/com/syc/slm/slmbi/service/InstrumentPanelPermissionService.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
;
package
com
.
syc
.
slm
.
slmbi
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.syc.slm.slmbi.dto.CustomPermissionDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelPermissionDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelPermissionDTO
;
import
com.syc.slm.slmbi.entity.InstrumentPanelPermission
;
import
com.syc.slm.slmbi.vo.CustomPermissionVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelPermissionVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelPermissionVo
;
import
lombok.NonNull
;
import
lombok.NonNull
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* slm-bi
* slm-bi
* 仪表板权限
* 仪表板权限
控制
*
*
* @author : lin
* @author : lin
* @date : 2021-03-25 1
5:10
* @date : 2021-03-25 1
8:54
**/
**/
public
interface
InstrumentPanelPermissionService
{
public
interface
InstrumentPanelPermissionService
extends
IService
<
InstrumentPanelPermission
>
{
/**
/**
* 保存仪表板权限
* 保存仪表板权限
*
*
* @param permissions
* @param permissions
* @return
* @return
*/
*/
String
savePermission
(
List
<
InstrumentPanelPermissionDTO
>
permissions
);
String
savePermission
(
InstrumentPanelPermissionDTO
permissions
);
/**
/**
* 从其他仪表板复制配置
* 从其他仪表板复制配置
...
@@ -27,16 +31,16 @@ public interface InstrumentPanelPermissionService {
...
@@ -27,16 +31,16 @@ public interface InstrumentPanelPermissionService {
* @param instrumentPanelId
* @param instrumentPanelId
* @return
* @return
*/
*/
List
<
InstrumentPanelPermissionVo
>
saveCopyOtherPermission
(
@NonNull
String
instrumentPanelId
);
InstrumentPanelPermissionVo
saveCopyOtherPermission
(
@NonNull
String
instrumentPanelId
);
/**
/**
* 将仪表板权限复制给其他仪表板
* 将仪表板权限复制给其他仪表板
*
*
* @param permissions
* @param permissions
* @param otherInstrumentPanelId
* @param otherInstrumentPanelId
s
* @return
* @return
*/
*/
String
saveCopyToOtherPermission
(
List
<
InstrumentPanelPermissionDTO
>
permissions
,
String
otherInstrumentPanelId
);
void
saveCopyToOtherPermission
(
InstrumentPanelPermissionDTO
permissions
,
List
<
String
>
otherInstrumentPanelIds
);
/**
/**
* 根据仪表板id获取仪表板权限
* 根据仪表板id获取仪表板权限
...
@@ -44,5 +48,49 @@ public interface InstrumentPanelPermissionService {
...
@@ -44,5 +48,49 @@ public interface InstrumentPanelPermissionService {
* @param instrumentPanelId
* @param instrumentPanelId
* @return
* @return
*/
*/
List
<
InstrumentPanelPermissionVo
>
selectPermissionByPanelId
(
@NonNull
String
instrumentPanelId
);
InstrumentPanelPermissionVo
selectPermissionByPanelId
(
@NonNull
String
instrumentPanelId
);
/**
* 根据仪表板id删除仪表板权限
* @param panelId
* @param publishStatus
*/
void
delPermissionByPanelId
(
@NonNull
String
panelId
,
String
publishStatus
);
/**
* 根据仪表板id获取已经发布的配置
* @param panelId
* @param publishStatus
* @return
*/
List
<
CustomPermissionVo
>
getPublishPermissionByPanelId
(
@NonNull
String
panelId
,
@NonNull
String
publishStatus
);
/**
* 根据仪表板详情保存仪表板配置
* @param customPermissions
* @param panelId
* @param accessType
* @param publishStatus
*/
void
savePanelPermission
(
List
<
CustomPermissionDTO
>
customPermissions
,
String
panelId
,
String
accessType
,
String
publishStatus
);
/**
* 批量发布把对应配置状态更改为发布状态
* @param ids
*/
void
publishPermissionByPanelIds
(
List
<
String
>
ids
);
/**
* 根据仪表板id 以及 状态获取仪表板对应权限
* @param panelId
* @param publishStatus
* @return
*/
List
<
InstrumentPanelPermission
>
getPermissionByPanelIdAndPublishStatus
(
String
panelId
,
String
publishStatus
);
/**
* 下线仪表板对应权限
* @param panelId
*/
void
offlinePermission
(
String
panelId
);
}
}
src/main/java/com/syc/slm/slmbi/service/InstrumentPanelService.java
View file @
e691bc53
...
@@ -3,11 +3,15 @@ package com.syc.slm.slmbi.service;
...
@@ -3,11 +3,15 @@ package com.syc.slm.slmbi.service;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.syc.slm.slmbi.dto.SaveInstrumentPanelDTO
;
import
com.syc.slm.slmbi.dto.SaveInstrumentPanelDTO
;
import
com.syc.slm.slmbi.dto.
Search
InstrumentPanelDTO
;
import
com.syc.slm.slmbi.dto.
Query
InstrumentPanelDTO
;
import
com.syc.slm.slmbi.entity.InstrumentPanel
;
import
com.syc.slm.slmbi.entity.InstrumentPanel
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelVo
;
import
com.syc.slm.slmbi.vo.PanelTreeNodeVo
;
import
lombok.NonNull
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
/**
/**
* slm-bi
* slm-bi
...
@@ -23,7 +27,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
...
@@ -23,7 +27,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
* @param where
* @param where
* @return
* @return
*/
*/
IPage
<
InstrumentPanelVo
>
selectInstrumentPanelList
(
S
earch
InstrumentPanelDTO
where
);
IPage
<
InstrumentPanelVo
>
selectInstrumentPanelList
(
S
tring
appId
,
Query
InstrumentPanelDTO
where
);
/**
/**
* 保存仪表板
* 保存仪表板
...
@@ -31,7 +35,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
...
@@ -31,7 +35,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
* @param panel
* @param panel
* @return
* @return
*/
*/
String
savePanel
(
SaveInstrumentPanelDTO
panel
);
String
savePanel
(
S
tring
appId
,
S
aveInstrumentPanelDTO
panel
);
/**
/**
* 批量推送
* 批量推送
...
@@ -39,7 +43,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
...
@@ -39,7 +43,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
* @param ids
* @param ids
* @return
* @return
*/
*/
Boolean
batchPublish
(
List
<
String
>
ids
);
List
<
String
>
batchPublish
(
List
<
String
>
ids
);
/**
/**
* 删除仪表板
* 删除仪表板
...
@@ -55,7 +59,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
...
@@ -55,7 +59,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
* @param instrumentPanelDTO
* @param instrumentPanelDTO
* @return
* @return
*/
*/
String
saveAsPanel
(
SaveInstrumentPanelDTO
instrumentPanelDTO
);
String
saveAsPanel
(
S
tring
appId
,
S
aveInstrumentPanelDTO
instrumentPanelDTO
);
/**
/**
* 是否显示恢复按钮
* 是否显示恢复按钮
...
@@ -71,7 +75,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
...
@@ -71,7 +75,7 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
* @param id
* @param id
* @return
* @return
*/
*/
String
recoveryPanel
(
String
id
);
InstrumentPanelConfigVo
recoveryPanel
(
String
id
);
/**
/**
* 下线
* 下线
...
@@ -80,4 +84,23 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
...
@@ -80,4 +84,23 @@ public interface InstrumentPanelService extends IService<InstrumentPanel> {
* @return
* @return
*/
*/
String
offline
(
String
id
);
String
offline
(
String
id
);
/**
* 批量更新仪表板状态
* @param panelIds
* @param recordStatus
*/
void
batchUpdatePanelByIds
(
Set
<
String
>
panelIds
,
Integer
recordStatus
);
/**
* 检验仪表板是否重复
* @param appId
* @param panelId
* @param panelName
*/
void
checkName
(
@NonNull
String
appId
,
String
panelId
,
@NonNull
String
panelName
);
List
<
InstrumentPanel
>
getByIds
(
Set
<
String
>
panelIds
);
List
<
PanelTreeNodeVo
>
selectPanelByIds
(
Set
<
String
>
finalPanelIds
,
String
name
);
}
}
src/main/java/com/syc/slm/slmbi/service/InstrumentPanelTreeService.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.syc.slm.slmbi.dto.InstrumentPanelAssemblyDTO
;
import
com.syc.slm.slmbi.entity.CurrentUser
;
import
com.syc.slm.slmbi.entity.InstrumentPanelTree
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
com.syc.slm.slmbi.vo.PanelTreeNodeVo
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
/**
* 仪表板树聚合表
*
* @author lin
* @date 2021-04-01 10:52:44
*/
public
interface
InstrumentPanelTreeService
extends
IService
<
InstrumentPanelTree
>
{
void
batchUpdateTreeByIds
(
Set
<
String
>
treeIds
,
Integer
recordStatus
);
/**
* 初始化仪表板树
*
* @param nodeId
* @param nodeType
* @param bizId
* @param bizName
*/
void
initTree
(
String
nodeId
,
String
nodeType
,
String
bizId
,
String
bizName
);
/**
* 根据仪表板id删除仪表板树
*
* @param panelId
*/
void
delTreeByPanelId
(
String
panelId
);
/**
* 根据仪表板详情保存仪表板组件树
*
* @param tree
* @param assembly
* @param panelId
*/
void
savePanelAssemblyTree
(
InstrumentPanelTree
tree
,
List
<
InstrumentPanelAssemblyDTO
>
assembly
,
String
panelId
);
/**
* 根据fullId 删除仪表板树
* @param fullId
*/
void
delTreeByPanelFullId
(
String
fullId
);
/**
* 更新仪表板树
* @param panelId
* @param panelName
* @param groupId
*/
void
updatePanelTreeFullName
(
String
panelId
,
String
panelName
,
String
groupId
)
;
/**
* 加载树
* @param appId
* @param name
* @return
*/
List
<
PanelTreeNodeVo
>
loadTrees
(
String
appId
,
String
name
,
String
uri
,
CurrentUser
user
);
/**
* 加载树
* @param appId
* @return
*/
List
<
PanelTreeNodeVo
>
loadTrees
(
String
appId
,
String
uri
,
CurrentUser
user
);
/**
* 加载树节点下一节点
* @param groupId
* @param name
* @return
*/
List
<
PanelTreeNodeVo
>
children
(
String
groupId
,
String
name
,
String
uri
,
CurrentUser
user
);
/**
* 根据仪表板分组id更新 fullId fullName
* @param groupId
* @param panelId
* @param panelName
*/
void
updateFullNameByGroupId
(
String
groupId
,
String
panelId
,
String
panelName
);
/**
* 复制仪表板配置显示的仪表板树
* @param appId
* @param name
* @return
*/
List
<
PanelTreeNodeVo
>
copyTreeList
(
String
appId
,
String
name
);
/**
* 复用仪表板树
* @param appId
* @param name
* @return
*/
List
<
PanelTreeNodeVo
>
citeTreeList
(
String
appId
,
String
name
);
/**
* 点击仪表板组件获取对应配置
* @param appId
* @param panelId
* @return
*/
Map
<
String
,
String
>
assembly
(
String
appId
,
String
panelId
);
}
src/main/java/com/syc/slm/slmbi/service/PositionService.java
View file @
e691bc53
...
@@ -13,8 +13,10 @@ import java.util.List;
...
@@ -13,8 +13,10 @@ import java.util.List;
public
interface
PositionService
{
public
interface
PositionService
{
/**
/**
* 获取岗位
* 获取岗位
* @param token
* @param appId
* @param name
* @param name
* @return
* @return
*/
*/
List
<
PositionVo
>
selectPositionList
(
String
name
);
List
<
PositionVo
>
selectPositionList
(
String
uri
,
String
token
,
String
appId
,
String
name
);
}
}
src/main/java/com/syc/slm/slmbi/service/UserService.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
;
package
com
.
syc
.
slm
.
slmbi
.
service
;
import
com.syc.slm.slmbi.vo.UserVo
;
import
com.syc.slm.slmbi.vo.User
Tree
Vo
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -11,10 +11,14 @@ import java.util.List;
...
@@ -11,10 +11,14 @@ import java.util.List;
* @date : 2021-03-25 16:17
* @date : 2021-03-25 16:17
**/
**/
public
interface
UserService
{
public
interface
UserService
{
/**
/**
* 获取用户
* 获取用户
* @param appId
* @param uri
* @param token
* @param userName
* @param userName
* @return
* @return
*/
*/
List
<
User
Vo
>
selectUserList
(
String
userName
);
List
<
User
TreeVo
>
selectUserList
(
String
appId
,
String
uri
,
String
token
,
String
userName
);
}
}
src/main/java/com/syc/slm/slmbi/service/VariableService.java
View file @
e691bc53
...
@@ -2,6 +2,7 @@ package com.syc.slm.slmbi.service;
...
@@ -2,6 +2,7 @@ package com.syc.slm.slmbi.service;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.syc.slm.slmbi.dto.HistoryVariableDTO
;
import
com.syc.slm.slmbi.dto.HistoryVariableDTO
;
import
com.syc.slm.slmbi.dto.QueryPageDTO
;
import
com.syc.slm.slmbi.dto.RealTimeVariableDTO
;
import
com.syc.slm.slmbi.dto.RealTimeVariableDTO
;
import
com.syc.slm.slmbi.dto.VariableDTO
;
import
com.syc.slm.slmbi.dto.VariableDTO
;
import
com.syc.slm.slmbi.vo.*
;
import
com.syc.slm.slmbi.vo.*
;
...
@@ -22,7 +23,7 @@ public interface VariableService {
...
@@ -22,7 +23,7 @@ public interface VariableService {
* @param variableDTO
* @param variableDTO
* @return
* @return
*/
*/
IPage
<
VariableVo
>
getVariableList
(
VariableDTO
variableDTO
);
IPage
<
VariableVo
>
getVariableList
(
VariableDTO
variableDTO
,
String
appId
,
String
token
,
String
uri
);
/**
/**
* 获取变量来源
* 获取变量来源
...
@@ -32,9 +33,13 @@ public interface VariableService {
...
@@ -32,9 +33,13 @@ public interface VariableService {
/**
/**
* 获取变量所属设备
* 获取变量所属设备
* @param token
* @param appId
* @param uri
* @param queryPageDTO
* @return
* @return
*/
*/
List
<
VariableDeviceVo
>
getVariableDeviceList
(
);
IPage
<
VariableDeviceVo
>
getVariableDeviceList
(
String
token
,
String
appId
,
String
uri
,
QueryPageDTO
queryPageDTO
);
/**
/**
* 获取实时数据
* 获取实时数据
...
...
src/main/java/com/syc/slm/slmbi/service/impl/DeptServiceImpl.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.syc.slm.slmbi.vo.DeptVo
;
import
com.google.common.collect.Maps
;
import
com.google.gson.reflect.TypeToken
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.RestTemplateUtils
;
import
com.syc.slm.slmbi.service.DeptService
;
import
com.syc.slm.slmbi.service.DeptService
;
import
com.syc.slm.slmbi.vo.DeptVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* slm-bi
* slm-bi
...
@@ -14,9 +20,21 @@ import java.util.List;
...
@@ -14,9 +20,21 @@ import java.util.List;
* @date : 2021-03-25 18:41
* @date : 2021-03-25 18:41
**/
**/
@Service
@Service
@Slf4j
public
class
DeptServiceImpl
implements
DeptService
{
public
class
DeptServiceImpl
implements
DeptService
{
@Override
@Override
public
List
<
DeptVo
>
selectDeptList
(
String
deptName
)
{
public
List
<
DeptVo
>
selectPositionList
(
String
uri
,
String
token
,
String
appId
,
String
deptName
)
{
return
null
;
log
.
info
(
"部门查询uri:---------------->"
+
uri
);
log
.
info
(
"部门查询token:---------------->"
+
token
);
Map
<
String
,
String
>
heads
=
Maps
.
newHashMap
();
heads
.
put
(
"token"
,
token
);
Map
<
String
,
String
>
uriVariables
=
Maps
.
newHashMap
();
uriVariables
.
put
(
"deptName"
,
deptName
);
uriVariables
.
put
(
"appId"
,
appId
);
R
<
List
<
DeptVo
>>
result
=
RestTemplateUtils
.
get
(
uri
,
heads
,
new
TypeToken
<
R
<
List
<
DeptVo
>>>()
{}.
getType
(),
uriVariables
);
return
result
.
detach
();
}
}
}
}
src/main/java/com/syc/slm/slmbi/service/impl/InstrumentPanelConfigServiceImpl.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Maps
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.slmbi.dao.InstrumentPanelConfigMapper
;
import
com.syc.slm.slmbi.dto.InstrumentPanelConfigDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelConfigDTO
;
import
com.syc.slm.slmbi.service.InstrumentPanelConfigService
;
import
com.syc.slm.slmbi.dto.InstrumentPanelPermissionDTO
;
import
com.syc.slm.slmbi.entity.*
;
import
com.syc.slm.slmbi.enums.PublishedStatus
;
import
com.syc.slm.slmbi.exception.SysException
;
import
com.syc.slm.slmbi.service.*
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.yaml.snakeyaml.events.Event
;
import
javax.validation.constraints.NotNull
;
import
java.net.URLDecoder
;
import
java.net.URLEncoder
;
import
java.nio.charset.StandardCharsets
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
/**
* slm-bi
* slm-bi
...
@@ -12,22 +40,321 @@ import org.springframework.stereotype.Service;
...
@@ -12,22 +40,321 @@ import org.springframework.stereotype.Service;
* @author : lin
* @author : lin
* @date : 2021-03-25 19:11
* @date : 2021-03-25 19:11
**/
**/
@Slf4j
@Service
@Service
public
class
InstrumentPanelConfigServiceImpl
implements
InstrumentPanelConfigService
{
public
class
InstrumentPanelConfigServiceImpl
extends
ServiceImpl
<
InstrumentPanelConfigMapper
,
InstrumentPanelConfig
>
implements
InstrumentPanelConfigService
{
@Autowired
private
InstrumentPanelPermissionService
permissionService
;
@Autowired
private
InstrumentPanelService
panelService
;
@Autowired
private
InstrumentPanelTreeService
treeService
;
@Autowired
private
InstrumentPanelDraftService
draftService
;
@Override
@Transactional
(
readOnly
=
true
)
public
InstrumentPanelConfigVo
getPublishConfigByPanelId
(
@NotNull
String
instrumentPanelId
)
{
return
getInstrumentPanelConfigVo
(
instrumentPanelId
,
PublishedStatus
.
PUBLISHED
);
}
@Override
@Override
@Transactional
(
readOnly
=
true
)
public
InstrumentPanelConfigVo
getConfigByPanelId
(
String
instrumentPanelId
)
{
public
InstrumentPanelConfigVo
getConfigByPanelId
(
String
instrumentPanelId
)
{
return
null
;
InstrumentPanelDraft
draft
=
draftService
.
getByPanelId
(
instrumentPanelId
);
return
getInstrumentPanelConfigVo
(
instrumentPanelId
,
ObjectUtils
.
isNotEmpty
(
draft
)
?
PublishedStatus
.
PUBLISHED
:
PublishedStatus
.
WAIT_PUBLISHED
);
}
}
@Override
@Override
public
String
publish
(
InstrumentPanelConfigDTO
config
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
return
null
;
public
String
publish
(
String
appId
,
InstrumentPanelConfigDTO
config
)
{
InstrumentPanelPermissionDTO
permission
=
config
.
getPermission
();
checkAll
(
appId
,
config
,
permission
);
InstrumentPanel
panel
=
panelService
.
getById
(
config
.
getPanelId
());
fillPanelProp
(
permission
,
panel
,
PublishedStatus
.
PUBLISHED
.
value
);
log
.
info
(
"删除仪表板配置详情"
);
delConfig
(
config
.
getPanelId
(),
null
);
log
.
info
(
"保存配置详情"
);
savePanelConfig
(
panel
.
getId
(),
config
.
getConfigDetails
(),
PublishedStatus
.
PUBLISHED
.
value
);
log
.
info
(
"删除仪表板权限信息"
);
permissionService
.
delPermissionByPanelId
(
config
.
getPanelId
(),
null
);
log
.
info
(
"保存权限信息"
);
permissionService
.
savePanelPermission
(
permission
.
getCustomPermissions
(),
panel
.
getId
(),
permission
.
getAccessType
(),
PublishedStatus
.
PUBLISHED
.
value
);
log
.
info
(
"更新仪表板树"
);
updateTree
(
config
,
panel
);
InstrumentPanelDraft
draft
=
draftService
.
getByPanelId
(
panel
.
getId
());
if
(
ObjectUtils
.
isNotEmpty
(
draft
))
{
String
beforeId
=
draft
.
getId
();
BeanUtils
.
copyProperties
(
panel
,
draft
);
draft
.
setId
(
beforeId
);
draft
.
setPanelId
(
panel
.
getId
());
draftService
.
updateById
(
draft
);
}
else
{
InstrumentPanelDraft
df
=
new
InstrumentPanelDraft
();
BeanUtils
.
copyProperties
(
panel
,
df
);
df
.
setId
(
IdWorker
.
get32UUID
());
df
.
setPanelId
(
panel
.
getId
());
df
.
setPublished
(
PublishedStatus
.
PUBLISHED
.
value
);
draftService
.
save
(
df
);
}
panelService
.
updateById
(
panel
);
return
panel
.
getId
();
}
}
@Override
@Override
public
String
saveConfig
(
InstrumentPanelConfigDTO
config
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
String
saveConfig
(
String
appId
,
InstrumentPanelConfigDTO
config
)
{
InstrumentPanelPermissionDTO
permission
=
config
.
getPermission
();
checkAll
(
appId
,
config
,
permission
);
InstrumentPanel
panel
=
panelService
.
getById
(
config
.
getPanelId
());
fillPanelProp
(
permission
,
panel
,
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
//判断是否有发布版本
InstrumentPanelDraft
draft
=
draftService
.
getByPanelId
(
panel
.
getId
());
if
(
ObjectUtils
.
isNotEmpty
(
draft
))
{
log
.
info
(
"删除待发布配置详情"
);
delConfig
(
panel
.
getId
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
log
.
info
(
"删除仪表板权限信息"
);
permissionService
.
delPermissionByPanelId
(
config
.
getPanelId
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
log
.
info
(
"更新发布版本的groupId"
);
draft
.
setGroupId
(
permission
.
getGroupId
());
draftService
.
updateById
(
draft
);
}
else
{
//修改
log
.
info
(
"删除仪表板配置详情"
);
delConfig
(
config
.
getPanelId
(),
null
);
log
.
info
(
"删除仪表板权限信息"
);
permissionService
.
delPermissionByPanelId
(
config
.
getPanelId
(),
null
);
}
log
.
info
(
"保存配置详情"
);
savePanelConfig
(
panel
.
getId
(),
config
.
getConfigDetails
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
log
.
info
(
"保存权限信息"
);
permissionService
.
savePanelPermission
(
permission
.
getCustomPermissions
(),
panel
.
getId
(),
permission
.
getAccessType
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
log
.
info
(
"更新仪表板树"
);
updateTree
(
config
,
panel
);
panelService
.
updateById
(
panel
);
return
config
.
getPanelId
();
}
private
void
checkAll
(
String
appId
,
InstrumentPanelConfigDTO
config
,
InstrumentPanelPermissionDTO
permission
)
{
if
(
ObjectUtils
.
isEmpty
(
permission
))
{
throw
new
SysException
(
"权限必填"
);
}
if
(
StringUtils
.
isEmpty
(
permission
.
getPanelName
()))
{
throw
new
SysException
(
"仪表板名字必填"
);
}
if
(
StringUtils
.
isEmpty
(
permission
.
getGroupId
()))
{
throw
new
SysException
(
"仪表板分组必填"
);
}
log
.
info
(
"校验仪表板名称是否重复"
);
panelService
.
checkName
(
appId
,
config
.
getPanelId
(),
permission
.
getPanelName
());
}
@Override
public
void
delConfig
(
@NotNull
String
panelId
,
String
publishedStatus
)
{
List
<
InstrumentPanelConfig
>
configs
=
getConfigByPanelIdAndPublishStatus
(
panelId
,
publishedStatus
);
if
(
CollectionUtils
.
isNotEmpty
(
configs
))
{
configs
.
forEach
(
x
->
{
x
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
x
);
});
}
}
@Override
public
void
savePanelConfig
(
String
panelId
,
String
configDetails
,
String
publishStatus
)
{
InstrumentPanelConfig
panelConfig
=
new
InstrumentPanelConfig
();
panelConfig
.
setId
(
IdWorker
.
get32UUID
());
panelConfig
.
setPanelId
(
panelId
);
panelConfig
.
setPublished
(
publishStatus
);
try
{
panelConfig
.
setConfigDetails
(
URLEncoder
.
encode
(
configDetails
,
StandardCharsets
.
UTF_8
.
name
()));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
SysException
(
"仪表板配置详情加密异常"
);
}
baseMapper
.
insert
(
panelConfig
);
}
@Override
public
void
publishConfigByPanelIds
(
List
<
String
>
ids
)
{
LambdaQueryWrapper
<
InstrumentPanelConfig
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
InstrumentPanelConfig:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
in
(
InstrumentPanelConfig:
:
getPanelId
,
ids
);
List
<
InstrumentPanelConfig
>
configs
=
baseMapper
.
selectList
(
where
);
if
(
CollectionUtils
.
isNotEmpty
(
configs
))
{
Map
<
String
,
List
<
InstrumentPanelConfig
>>
configMaps
=
configs
.
stream
().
collect
(
Collectors
.
groupingBy
(
InstrumentPanelConfig:
:
getPanelId
));
if
(
CollectionUtils
.
isNotEmpty
(
configMaps
)){
configMaps
.
forEach
((
k
,
v
)->{
List
<
InstrumentPanelConfig
>
waitPublishConfigs
=
configs
.
stream
().
filter
(
x
->
PublishedStatus
.
WAIT_PUBLISHED
.
value
.
equals
(
x
.
getPublished
())).
collect
(
Collectors
.
toList
());
List
<
InstrumentPanelConfig
>
publishConfigs
=
configs
.
stream
().
filter
(
x
->
PublishedStatus
.
PUBLISHED
.
value
.
equals
(
x
.
getPublished
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
waitPublishConfigs
)){
waitPublishConfigs
.
forEach
(
x
->
{
x
.
setPublished
(
PublishedStatus
.
PUBLISHED
.
value
);
baseMapper
.
updateById
(
x
);
});
if
(
CollectionUtils
.
isNotEmpty
(
publishConfigs
)){
publishConfigs
.
forEach
(
x
->
{
x
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
x
);
});
}
}
});
}
}
}
@Override
@Transactional
(
readOnly
=
true
)
public
List
<
InstrumentPanelConfig
>
getConfigByPanelIdAndPublishStatus
(
String
panelId
,
String
publishStatus
)
{
LambdaQueryWrapper
<
InstrumentPanelConfig
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
eq
(
InstrumentPanelConfig:
:
getPanelId
,
panelId
);
if
(
publishStatus
!=
null
)
{
where
.
eq
(
InstrumentPanelConfig:
:
getPublished
,
publishStatus
);
}
return
baseMapper
.
selectList
(
where
);
}
@Override
public
void
offlineConfig
(
String
panelId
,
String
publishStatus
)
{
List
<
InstrumentPanelConfig
>
configs
=
getConfigByPanelIdAndPublishStatus
(
panelId
,
publishStatus
);
InstrumentPanelConfig
waitConfig
=
configs
.
stream
()
.
filter
(
x
->
PublishedStatus
.
WAIT_PUBLISHED
.
value
.
equals
(
x
.
getPublished
()))
.
findFirst
()
.
orElse
(
null
);
if
(
ObjectUtils
.
isNotEmpty
(
waitConfig
)){
InstrumentPanelConfig
publishConfig
=
configs
.
stream
().
filter
(
x
->
PublishedStatus
.
PUBLISHED
.
value
.
equals
(
x
.
getPublished
())).
findFirst
().
orElse
(
null
);
if
(
ObjectUtils
.
isNotEmpty
(
publishConfig
)){
publishConfig
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
publishConfig
);
}
}
else
{
InstrumentPanelConfig
pushConfig
=
configs
.
stream
()
.
filter
(
x
->
PublishedStatus
.
PUBLISHED
.
value
.
equals
(
x
.
getPublished
()))
.
findFirst
()
.
orElse
(
null
);
if
(
ObjectUtils
.
isNotEmpty
(
pushConfig
)){
InstrumentPanelConfig
config
=
new
InstrumentPanelConfig
();
BeanUtils
.
copyProperties
(
pushConfig
,
config
);
config
.
setPublished
(
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
config
.
setId
(
IdWorker
.
get32UUID
());
baseMapper
.
insert
(
config
);
pushConfig
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
pushConfig
);
}
}
}
@Override
@Transactional
public
Map
<
String
,
String
>
getAssemblyConfig
(
@NotNull
String
panelId
)
{
Map
<
String
,
String
>
maps
=
Maps
.
newHashMap
();
LambdaQueryWrapper
<
InstrumentPanelConfig
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
eq
(
InstrumentPanelConfig:
:
getPanelId
,
panelId
);
List
<
InstrumentPanelConfig
>
configs
=
baseMapper
.
selectList
(
where
);
if
(
CollectionUtils
.
isNotEmpty
(
configs
)){
InstrumentPanelConfig
waitConfig
=
configs
.
stream
()
.
filter
(
x
->
PublishedStatus
.
WAIT_PUBLISHED
.
value
.
equals
(
x
.
getPublished
()))
.
findFirst
()
.
orElse
(
null
);
if
(
ObjectUtils
.
isNotEmpty
(
waitConfig
)){
try
{
maps
.
put
(
PublishedStatus
.
WAIT_PUBLISHED
.
value
,
URLDecoder
.
decode
(
waitConfig
.
getConfigDetails
(),
StandardCharsets
.
UTF_8
.
name
()));
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
}
InstrumentPanelConfig
publishConfig
=
configs
.
stream
()
.
filter
(
x
->
PublishedStatus
.
PUBLISHED
.
value
.
equals
(
x
.
getPublished
()))
.
findFirst
()
.
orElse
(
null
);
if
(
ObjectUtils
.
isNotEmpty
(
publishConfig
)){
try
{
maps
.
put
(
PublishedStatus
.
PUBLISHED
.
value
,
URLDecoder
.
decode
(
publishConfig
.
getConfigDetails
(),
StandardCharsets
.
UTF_8
.
name
()));
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
}
}
return
maps
;
}
private
InstrumentPanelConfigVo
getInstrumentPanelConfigVo
(
String
instrumentPanelId
,
PublishedStatus
published
)
{
LambdaQueryWrapper
<
InstrumentPanelConfig
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
eq
(
InstrumentPanelConfig:
:
getPanelId
,
instrumentPanelId
);
where
.
eq
(
InstrumentPanelConfig:
:
getPublished
,
published
.
value
);
InstrumentPanelConfig
config
=
baseMapper
.
selectOne
(
where
);
if
(
ObjectUtils
.
isNotEmpty
(
config
))
{
InstrumentPanelConfigVo
vo
=
new
InstrumentPanelConfigVo
();
BeanUtils
.
copyProperties
(
config
,
vo
);
if
(
ObjectUtils
.
isNotEmpty
(
vo
))
{
try
{
vo
.
setConfigDetails
(
URLDecoder
.
decode
(
vo
.
getConfigDetails
(),
StandardCharsets
.
UTF_8
.
name
()));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
SysException
(
"仪表板配置详情解密异常"
);
}
vo
.
setPermissions
(
permissionService
.
getPublishPermissionByPanelId
(
instrumentPanelId
,
published
.
value
));
InstrumentPanelVo
panelVo
=
new
InstrumentPanelVo
();
if
(
PublishedStatus
.
PUBLISHED
.
value
.
equals
(
published
.
value
))
{
InstrumentPanelDraft
panel
=
draftService
.
getById
(
instrumentPanelId
);
BeanUtils
.
copyProperties
(
panel
,
panelVo
);
}
else
{
InstrumentPanel
panel
=
panelService
.
getById
(
instrumentPanelId
);
BeanUtils
.
copyProperties
(
panel
,
panelVo
);
}
vo
.
setPanel
(
panelVo
);
return
vo
;
}
}
return
null
;
return
null
;
}
}
private
void
fillPanelProp
(
InstrumentPanelPermissionDTO
permission
,
InstrumentPanel
panel
,
String
publishStatus
)
{
panel
.
setGroupId
(
permission
.
getGroupId
());
panel
.
setName
(
permission
.
getPanelName
());
panel
.
setAccessPermission
(
permission
.
getAccessType
());
panel
.
setDescription
(
permission
.
getDescription
());
panel
.
setPublished
(
publishStatus
);
}
private
void
updateTree
(
InstrumentPanelConfigDTO
config
,
InstrumentPanel
panel
)
{
log
.
info
(
"更新仪表盘树"
);
InstrumentPanelTree
tree
=
treeService
.
getById
(
config
.
getPanelId
());
String
beforeFullId
=
tree
.
getFullId
();
treeService
.
updatePanelTreeFullName
(
panel
.
getId
(),
panel
.
getName
(),
panel
.
getGroupId
());
log
.
info
(
"查找仪表盘配置组件树并删除"
);
treeService
.
delTreeByPanelFullId
(
beforeFullId
);
log
.
info
(
"重新构建组件树"
);
treeService
.
savePanelAssemblyTree
(
tree
,
config
.
getAssemblys
(),
panel
.
getId
());
}
}
}
src/main/java/com/syc/slm/slmbi/service/impl/InstrumentPanelDraftServiceImpl.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Sets
;
import
com.google.gson.reflect.TypeToken
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.slmbi.dao.InstrumentPanelDraftMapper
;
import
com.syc.slm.slmbi.entity.BaseEntity
;
import
com.syc.slm.slmbi.entity.InstrumentPanel
;
import
com.syc.slm.slmbi.entity.InstrumentPanelDraft
;
import
com.syc.slm.slmbi.service.InstrumentPanelDraftService
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* 仪表板草稿
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Service
public
class
InstrumentPanelDraftServiceImpl
extends
ServiceImpl
<
InstrumentPanelDraftMapper
,
InstrumentPanelDraft
>
implements
InstrumentPanelDraftService
{
@Override
public
void
saveDrafts
(
List
<
InstrumentPanel
>
panels
)
{
if
(
CollectionUtils
.
isNotEmpty
(
panels
))
{
List
<
InstrumentPanelDraft
>
drafts
=
SlmConstants
.
gson
.
fromJson
(
SlmConstants
.
gson
.
toJson
(
panels
),
new
TypeToken
<
List
<
InstrumentPanelDraft
>>()
{
}.
getType
());
if
(
CollectionUtils
.
isNotEmpty
(
drafts
))
{
List
<
InstrumentPanelDraft
>
panelDrafts
=
getByIds
(
panels
.
stream
().
map
(
InstrumentPanel:
:
getId
).
collect
(
Collectors
.
toSet
()));
Map
<
String
,
String
>
maps
=
CollectionUtils
.
isNotEmpty
(
panelDrafts
)
?
panelDrafts
.
stream
().
collect
(
Collectors
.
toMap
(
InstrumentPanelDraft:
:
getPanelId
,
BaseEntity:
:
getId
))
:
Maps
.
newHashMap
();
drafts
.
forEach
(
x
->
{
x
.
setPanelId
(
x
.
getId
());
if
(
maps
.
containsKey
(
x
.
getId
()))
{
x
.
setId
(
maps
.
get
(
x
.
getId
()));
baseMapper
.
updateById
(
x
);
}
else
{
x
.
setId
(
IdWorker
.
get32UUID
());
baseMapper
.
insert
(
x
);
}
});
}
}
}
@Override
public
List
<
InstrumentPanelDraft
>
getByIds
(
Set
<
String
>
panelIds
)
{
LambdaQueryWrapper
<
InstrumentPanelDraft
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
in
(
InstrumentPanelDraft:
:
getPanelId
,
panelIds
);
return
baseMapper
.
selectList
(
where
);
}
@Override
public
List
<
InstrumentPanelDraft
>
selectDraftList
(
String
appId
,
Set
<
String
>
panelIds
,
String
officeIds
,
String
userId
,
String
roleId
)
{
return
baseMapper
.
selectDraftList
(
appId
,
panelIds
,
officeIds
,
userId
,
roleId
);
}
@Override
public
InstrumentPanelDraft
getByPanelId
(
String
panelId
)
{
List
<
InstrumentPanelDraft
>
drafts
=
getByIds
(
Sets
.
newHashSet
(
panelId
));
return
CollectionUtils
.
isNotEmpty
(
drafts
)?
drafts
.
get
(
0
):
null
;
}
}
src/main/java/com/syc/slm/slmbi/service/impl/InstrumentPanelGroupServiceImpl.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.syc.slm.common.core.util.R
;
import
com.google.common.collect.Lists
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.slmbi.dao.InstrumentPanelGroupMapper
;
import
com.syc.slm.slmbi.dao.InstrumentPanelGroupMapper
;
import
com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelGroupDTO
;
import
com.syc.slm.slmbi.entity.BaseEntity
;
import
com.syc.slm.slmbi.entity.InstrumentPanelGroup
;
import
com.syc.slm.slmbi.entity.InstrumentPanelGroup
;
import
com.syc.slm.slmbi.entity.InstrumentPanelTree
;
import
com.syc.slm.slmbi.enums.NodeType
;
import
com.syc.slm.slmbi.exception.SysException
;
import
com.syc.slm.slmbi.function.Action2
;
import
com.syc.slm.slmbi.service.InstrumentPanelGroupService
;
import
com.syc.slm.slmbi.service.InstrumentPanelGroupService
;
import
com.syc.slm.slmbi.service.InstrumentPanelService
;
import
com.syc.slm.slmbi.service.InstrumentPanelTreeService
;
import
com.syc.slm.slmbi.vo.InstrumentPanelGroupVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelGroupVo
;
import
com.syc.slm.slmbi.vo.Panel
Group
Vo
;
import
com.syc.slm.slmbi.vo.Panel
TreeNode
Vo
;
import
lombok.NonNull
;
import
lombok.NonNull
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.*
;
import
java.util.function.Consumer
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
/**
* slm-bi
* slm-bi
...
@@ -21,35 +39,195 @@ import java.util.List;
...
@@ -21,35 +39,195 @@ import java.util.List;
* @author : lin
* @author : lin
* @date : 2021-03-25 15:43
* @date : 2021-03-25 15:43
**/
**/
@Slf4j
@Service
@Service
public
class
InstrumentPanelGroupServiceImpl
extends
ServiceImpl
<
InstrumentPanelGroupMapper
,
InstrumentPanelGroup
>
implements
InstrumentPanelGroupService
{
public
class
InstrumentPanelGroupServiceImpl
extends
ServiceImpl
<
InstrumentPanelGroupMapper
,
InstrumentPanelGroup
>
implements
InstrumentPanelGroupService
{
@Autowired
private
InstrumentPanelTreeService
treeService
;
@Autowired
private
InstrumentPanelService
panelService
;
@Override
@Override
public
List
<
InstrumentPanelGroupVo
>
selectGroupList
()
{
@Transactional
(
readOnly
=
true
)
return
null
;
public
List
<
InstrumentPanelGroupVo
>
selectGroupList
(
String
appId
,
String
name
)
{
LambdaQueryWrapper
<
InstrumentPanelGroup
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getAppId
,
appId
);
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
List
<
InstrumentPanelGroupVo
>
allGroups
=
baseMapper
.
selectGroupList
(
where
);
List
<
InstrumentPanelGroupVo
>
filteredGroups
=
allGroups
;
Map
<
String
,
InstrumentPanelGroupVo
>
allMap
=
allGroups
.
stream
().
collect
(
Collectors
.
toMap
(
InstrumentPanelGroupVo:
:
getId
,
x
->
x
));
Map
<
String
,
InstrumentPanelGroupVo
>
filteredMap
=
allMap
;
where
.
like
(
InstrumentPanelGroup:
:
getName
,
name
);
if
(
StringUtils
.
isNotEmpty
(
name
)){
filteredGroups
=
baseMapper
.
selectGroupList
(
where
);
filteredMap
=
filteredGroups
.
stream
().
collect
(
Collectors
.
toMap
(
InstrumentPanelGroupVo:
:
getId
,
x
->
x
));
}
Stack
<
InstrumentPanelGroupVo
>
stack
=
new
Stack
<>();
stack
.
addAll
(
filteredGroups
);
while
(!
stack
.
isEmpty
()){
InstrumentPanelGroupVo
group
=
stack
.
pop
();
String
parentId
=
group
.
getParentId
();
if
(
StringUtils
.
isNotEmpty
(
parentId
))
{
InstrumentPanelGroupVo
pGroup
=
Optional
.
ofNullable
(
filteredMap
.
get
(
parentId
)).
orElse
(
allMap
.
get
(
parentId
));
filteredMap
.
putIfAbsent
(
parentId
,
pGroup
);
stack
.
add
(
pGroup
);
}
}
return
Lists
.
newArrayList
(
filteredMap
.
values
());
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
String
delGroup
(
@NonNull
String
groupId
)
{
public
String
delGroup
(
@NonNull
String
groupId
)
{
return
null
;
InstrumentPanelGroup
group
=
baseMapper
.
selectById
(
groupId
);
}
if
(
group
.
getRecordStatus
().
equals
(
SlmConstants
.
DATA_DELETED
))
{
throw
new
SysException
(
"该分组已经被删除,请重新刷新页面进行操作!"
);
}
group
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
group
);
@Override
log
.
info
(
"删除仪表板树本身"
);
public
String
updateGroup
(
InstrumentPanelGroupDTO
group
)
{
InstrumentPanelTree
tree
=
treeService
.
getById
(
groupId
);
return
null
;
tree
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
treeService
.
updateById
(
tree
);
log
.
info
(
"查询该仪表板树下的子节点"
);
List
<
InstrumentPanelTree
>
children
=
getInstrumentPanelTrees
.
apply
(
tree
.
getFullId
());
if
(
CollectionUtils
.
isNotEmpty
(
children
))
{
Set
<
String
>
childrenIds
=
children
.
stream
().
map
(
BaseEntity:
:
getId
).
collect
(
Collectors
.
toSet
());
log
.
info
(
"删除该仪表板树下的子节点"
);
treeService
.
batchUpdateTreeByIds
(
childrenIds
,
SlmConstants
.
DATA_DELETED
);
log
.
info
(
"删除子分组"
);
delChildrenGroups
.
accept
(
children
);
log
.
info
(
"删除各个分组下的仪表板"
);
delPanelByIds
.
accept
(
children
);
}
return
groupId
;
}
}
@Override
@Override
public
String
saveGroup
(
InstrumentPanelGroupDTO
group
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
return
null
;
public
String
updateGroup
(
@NonNull
InstrumentPanelGroupDTO
group
,
String
appId
)
{
if
(
StringUtils
.
isEmpty
(
group
.
getName
())){
throw
new
SysException
(
"仪表板分组名称必填"
);
}
if
(
StringUtils
.
isEmpty
(
group
.
getParentId
())){
throw
new
SysException
(
"父级分组必填"
);
}
log
.
info
(
"检查分组名字是否重复"
);
checkedRepeatName
.
call
(
group
,
appId
);
InstrumentPanelGroup
entity
=
new
InstrumentPanelGroup
();
BeanUtils
.
copyProperties
(
group
,
entity
);
baseMapper
.
updateById
(
entity
);
log
.
info
(
"更新分组在仪表盘树中的全路径"
);
InstrumentPanelTree
tree
=
treeService
.
getById
(
entity
.
getId
());
String
beforeFullName
=
tree
.
getFullName
();
String
beforeFullId
=
tree
.
getFullId
();
InstrumentPanelTree
panelTree
=
treeService
.
getById
(
group
.
getParentId
());
tree
.
setFullName
(
panelTree
.
getFullName
()
+
"."
+
entity
.
getName
());
tree
.
setFullId
(
panelTree
.
getFullId
()
+
"."
+
entity
.
getId
());
tree
.
setName
(
entity
.
getName
());
treeService
.
updateById
(
tree
);
log
.
info
(
"重新构建该分组下的仪表板树全路径"
);
List
<
InstrumentPanelTree
>
children
=
getInstrumentPanelTrees
.
apply
(
beforeFullId
);
children
.
forEach
(
x
->
{
x
.
setFullId
(
x
.
getFullId
().
replace
(
beforeFullId
,
tree
.
getFullId
()));
x
.
setFullName
(
tree
.
getFullName
()+
"."
+
x
.
getFullName
()
.
substring
(
beforeFullName
.
length
()+
1
));
treeService
.
updateById
(
x
);
});
return
tree
.
getId
();
}
}
@Override
@Override
public
List
<
PanelGroupVo
>
loadTrees
(
String
name
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
return
null
;
public
String
saveGroup
(
@NonNull
InstrumentPanelGroupDTO
group
,
String
appId
)
{
if
(
StringUtils
.
isEmpty
(
group
.
getName
())){
throw
new
SysException
(
"仪表板分组名称必填"
);
}
log
.
info
(
"校验名字是否重复"
);
checkedRepeatName
.
call
(
group
,
appId
);
log
.
info
(
"新增仪表板分组"
);
InstrumentPanelGroup
entity
=
new
InstrumentPanelGroup
();
BeanUtils
.
copyProperties
(
group
,
entity
);
entity
.
setId
(
IdWorker
.
get32UUID
());
baseMapper
.
insert
(
entity
);
log
.
info
(
"构建仪表板树 聚合表"
);
InstrumentPanelTree
tree
=
new
InstrumentPanelTree
();
tree
.
setId
(
entity
.
getId
());
if
(
StringUtils
.
isNotEmpty
(
group
.
getParentId
()))
{
InstrumentPanelTree
panelTree
=
treeService
.
getById
(
group
.
getParentId
());
if
(
SlmConstants
.
DATA_DELETED
.
equals
(
panelTree
.
getRecordStatus
()))
{
throw
new
SysException
(
panelTree
.
getName
()
+
",已不存在,请刷新页面"
);
}
tree
.
setFullId
(
panelTree
.
getFullId
()
+
"."
+
entity
.
getId
());
tree
.
setFullName
(
panelTree
.
getFullName
()
+
"."
+
entity
.
getName
());
}
else
{
//顶级分组
log
.
info
(
"重新构建该分组下的仪表板树全路径"
);
tree
.
setFullId
(
entity
.
getId
());
tree
.
setFullName
(
entity
.
getName
());
}
tree
.
setNodeType
(
NodeType
.
GROUP
.
value
);
tree
.
setName
(
entity
.
getName
());
treeService
.
save
(
tree
);
return
entity
.
getId
();
}
}
@Override
@Override
public
List
<
Panel
GroupVo
>
children
(
String
groupId
,
String
name
)
{
public
List
<
Panel
TreeNodeVo
>
selectGroupByIds
(
Set
<
String
>
finalPanelIds
,
String
name
)
{
return
null
;
return
baseMapper
.
selectGroupByIds
(
finalPanelIds
,
name
)
;
}
}
private
Action2
<
InstrumentPanelGroupDTO
,
String
>
checkedRepeatName
=(
group
,
appId
)->
{
LambdaQueryWrapper
<
InstrumentPanelGroup
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
InstrumentPanelGroup:
:
getName
,
group
.
getName
());
wrapper
.
eq
(
BaseEntity:
:
getAppId
,
appId
);
wrapper
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
if
(
StringUtils
.
isNotEmpty
(
group
.
getId
()))
{
wrapper
.
ne
(
InstrumentPanelGroup:
:
getId
,
group
.
getId
());
}
if
(
baseMapper
.
selectCount
(
wrapper
)
>
0
)
{
throw
new
SysException
(
"仪表板分组名字:"
+
group
.
getName
()
+
"已存在!"
);
}
};
private
Consumer
<
List
<
InstrumentPanelTree
>>
delChildrenGroups
=
(
trees
)
->
{
Set
<
String
>
groupIds
=
trees
.
stream
()
.
filter
(
x
->
NodeType
.
GROUP
.
value
.
equals
(
x
.
getNodeType
()))
.
map
(
BaseEntity:
:
getId
)
.
collect
(
Collectors
.
toSet
());
if
(
CollectionUtils
.
isNotEmpty
(
groupIds
))
{
if
(
CollectionUtils
.
isNotEmpty
(
groupIds
))
{
baseMapper
.
batchUpdateGroupByIds
(
groupIds
,
SlmConstants
.
DATA_DELETED
);
}
}
};
private
Consumer
<
List
<
InstrumentPanelTree
>>
delPanelByIds
=
(
trees
)
->
{
Set
<
String
>
panelIds
=
trees
.
stream
()
.
filter
(
x
->
NodeType
.
PANEL
.
value
.
equals
(
x
.
getNodeType
()))
.
map
(
BaseEntity:
:
getId
)
.
collect
(
Collectors
.
toSet
());
if
(
CollectionUtils
.
isNotEmpty
(
panelIds
))
{
panelService
.
batchUpdatePanelByIds
(
panelIds
,
SlmConstants
.
DATA_DELETED
);
}
};
private
Function
<
String
,
List
<
InstrumentPanelTree
>>
getInstrumentPanelTrees
=
(
fullId
)
->
{
LambdaQueryWrapper
<
InstrumentPanelTree
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
likeRight
(
InstrumentPanelTree:
:
getFullId
,
fullId
+
"."
);
return
treeService
.
list
(
where
);
};
}
}
src/main/java/com/syc/slm/slmbi/service/impl/InstrumentPanelPermissionImpl.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Sets
;
import
com.google.gson.reflect.TypeToken
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.slmbi.dao.InstrumentPanelPermissionMapper
;
import
com.syc.slm.slmbi.dto.CustomPermissionDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelPermissionDTO
;
import
com.syc.slm.slmbi.dto.InstrumentPanelPermissionDTO
;
import
com.syc.slm.slmbi.entity.InstrumentPanel
;
import
com.syc.slm.slmbi.entity.InstrumentPanelConfig
;
import
com.syc.slm.slmbi.entity.InstrumentPanelPermission
;
import
com.syc.slm.slmbi.enums.AccessType
;
import
com.syc.slm.slmbi.enums.PublishedStatus
;
import
com.syc.slm.slmbi.exception.SysException
;
import
com.syc.slm.slmbi.service.InstrumentPanelPermissionService
;
import
com.syc.slm.slmbi.service.InstrumentPanelPermissionService
;
import
com.syc.slm.slmbi.service.InstrumentPanelService
;
import
com.syc.slm.slmbi.service.InstrumentPanelTreeService
;
import
com.syc.slm.slmbi.vo.CustomPermissionVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelPermissionVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelPermissionVo
;
import
lombok.NonNull
;
import
lombok.NonNull
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
/**
* slm-bi
* slm-bi
...
@@ -16,28 +42,201 @@ import java.util.List;
...
@@ -16,28 +42,201 @@ import java.util.List;
* @date : 2021-03-25 19:04
* @date : 2021-03-25 19:04
**/
**/
@Service
@Service
public
class
InstrumentPanelPermissionImpl
implements
InstrumentPanelPermissionService
{
@Slf4j
public
class
InstrumentPanelPermissionImpl
extends
ServiceImpl
<
InstrumentPanelPermissionMapper
,
InstrumentPanelPermission
>
implements
InstrumentPanelPermissionService
{
@Autowired
private
InstrumentPanelService
panelService
;
@Autowired
private
InstrumentPanelTreeService
treeService
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
String
savePermission
(
InstrumentPanelPermissionDTO
permissions
)
{
log
.
info
(
"判断仪表板的名称是否重复"
);
if
(
StringUtils
.
isBlank
(
permissions
.
getPanelName
()))
{
throw
new
SysException
(
"仪表板名称必填"
);
}
if
(
StringUtils
.
isBlank
(
permissions
.
getPanelId
()))
{
throw
new
SysException
(
"仪表板id必填,请联系管理员"
);
}
if
(
StringUtils
.
isBlank
(
permissions
.
getGroupId
()))
{
throw
new
SysException
(
"仪表板groupId必填,请联系管理员"
);
}
InstrumentPanel
panel
=
panelService
.
getById
(
permissions
.
getPanelId
());
panel
.
setName
(
permissions
.
getPanelName
());
panel
.
setGroupId
(
permissions
.
getGroupId
());
panel
.
setAccessPermission
(
permissions
.
getAccessType
());
panel
.
setDescription
(
permissions
.
getDescription
());
log
.
info
(
"删除原本的权限"
);
delPermissionByPanelId
(
permissions
.
getPanelId
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
savePanelPermission
(
permissions
.
getCustomPermissions
(),
permissions
.
getPanelId
(),
permissions
.
getAccessType
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
log
.
info
(
"更新仪表板的名称跟分组"
);
treeService
.
updateFullNameByGroupId
(
permissions
.
getGroupId
(),
permissions
.
getPanelId
(),
permissions
.
getPanelName
());
panelService
.
updateById
(
panel
);
return
permissions
.
getPanelId
();
}
@Override
public
InstrumentPanelPermissionVo
saveCopyOtherPermission
(
@NonNull
String
instrumentPanelId
)
{
return
selectPermissionByPanelId
(
instrumentPanelId
);
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
saveCopyToOtherPermission
(
InstrumentPanelPermissionDTO
permissions
,
List
<
String
>
otherInstrumentPanelIds
)
{
if
(
CollectionUtils
.
isEmpty
(
otherInstrumentPanelIds
)){
throw
new
SysException
(
"其他仪表板id必填,请联系管理员"
);
}
if
(
StringUtils
.
isBlank
(
permissions
.
getAccessType
())){
throw
new
SysException
(
"访问权限类型必填"
);
}
List
<
InstrumentPanel
>
panels
=
panelService
.
getByIds
(
Sets
.
newHashSet
(
otherInstrumentPanelIds
));
if
(
CollectionUtils
.
isEmpty
(
panels
)){
throw
new
SysException
(
"查找不到对应的仪表板,请联系管理员"
);
}
panels
.
forEach
(
panel
->{
panel
.
setAccessPermission
(
permissions
.
getAccessType
());
panel
.
setDescription
(
permissions
.
getDescription
());
log
.
info
(
"删除原本的权限"
);
delPermissionByPanelId
(
panel
.
getId
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
log
.
info
(
"插入现有的权限"
);
savePanelPermission
(
permissions
.
getCustomPermissions
(),
panel
.
getId
(),
panel
.
getAccessPermission
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
log
.
info
(
"更新访问权限"
);
panelService
.
updateById
(
panel
);
});
}
@Override
@Transactional
(
readOnly
=
true
)
public
InstrumentPanelPermissionVo
selectPermissionByPanelId
(
@NonNull
String
instrumentPanelId
)
{
InstrumentPanelPermissionVo
vo
=
new
InstrumentPanelPermissionVo
();
InstrumentPanel
panel
=
panelService
.
getById
(
instrumentPanelId
);
vo
.
setAccessType
(
panel
.
getAccessPermission
());
vo
.
setDescription
(
panel
.
getDescription
());
List
<
CustomPermissionVo
>
vos
=
getPublishPermissionByPanelId
(
instrumentPanelId
,
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
if
(
CollectionUtils
.
isEmpty
(
vos
)){
vos
=
getPublishPermissionByPanelId
(
instrumentPanelId
,
PublishedStatus
.
PUBLISHED
.
value
);
}
vo
.
setCustomPermissions
(
vos
);
return
vo
;
}
@Override
public
void
delPermissionByPanelId
(
@NonNull
String
panelId
,
String
publishStatus
)
{
List
<
InstrumentPanelPermission
>
permissions
=
getPermissionByPanelIdAndPublishStatus
(
panelId
,
publishStatus
);
if
(
CollectionUtils
.
isNotEmpty
(
permissions
))
{
permissions
.
forEach
(
x
->
{
x
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
x
);
});
}
}
@Override
@Override
public
String
savePermission
(
List
<
InstrumentPanelPermissionDTO
>
permissions
){
@Transactional
(
readOnly
=
true
)
//判断仪表板的名称是否重复
public
List
<
CustomPermissionVo
>
getPublishPermissionByPanelId
(
@NonNull
String
panelId
,
//删除原本的权限
@NonNull
String
publishStatus
)
{
//插入现有的权限
List
<
InstrumentPanelPermission
>
permissions
=
getPermissionByPanelIdAndPublishStatus
(
panelId
,
publishStatus
);
//更新仪表板的名称跟分组
return
CollectionUtils
.
isNotEmpty
(
permissions
)
?
SlmConstants
.
gson
.
fromJson
(
SlmConstants
.
gson
.
toJson
(
permissions
),
new
TypeToken
<
List
<
CustomPermissionVo
>>()
{}.
getType
())
:
null
;
return
null
;
}
}
@Override
@Override
public
List
<
InstrumentPanelPermissionVo
>
saveCopyOtherPermission
(
@NonNull
String
instrumentPanelId
)
{
public
void
savePanelPermission
(
List
<
CustomPermissionDTO
>
customPermissions
,
return
null
;
String
panelId
,
String
accessType
,
String
publishStatus
)
{
if
(
CollectionUtils
.
isNotEmpty
(
customPermissions
))
{
if
(
AccessType
.
CUSTOM
.
value
.
equals
(
accessType
))
{
if
(
CollectionUtils
.
isNotEmpty
(
customPermissions
))
{
customPermissions
.
forEach
(
x
->
{
InstrumentPanelPermission
p
=
new
InstrumentPanelPermission
();
p
.
setId
(
IdWorker
.
get32UUID
());
p
.
setBizId
(
x
.
getBizId
());
p
.
setBizName
(
x
.
getBizName
());
p
.
setBizType
(
x
.
getType
());
p
.
setPanelId
(
panelId
);
p
.
setPublished
(
publishStatus
);
baseMapper
.
insert
(
p
);
});
}
}
}
}
}
@Override
@Override
public
String
saveCopyToOtherPermission
(
List
<
InstrumentPanelPermissionDTO
>
permissions
,
String
otherInstrumentPanelId
)
{
public
void
publishPermissionByPanelIds
(
List
<
String
>
ids
)
{
return
null
;
LambdaQueryWrapper
<
InstrumentPanelPermission
>
where
=
new
LambdaQueryWrapper
<>();
where
.
in
(
InstrumentPanelPermission:
:
getPanelId
,
ids
);
where
.
eq
(
InstrumentPanelPermission:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
List
<
InstrumentPanelPermission
>
permissions
=
baseMapper
.
selectList
(
where
);
Map
<
String
,
List
<
InstrumentPanelPermission
>>
permissionMaps
=
permissions
.
stream
().
collect
(
Collectors
.
groupingBy
(
InstrumentPanelPermission:
:
getPanelId
));
if
(
CollectionUtils
.
isNotEmpty
(
permissionMaps
)){
permissionMaps
.
forEach
((
k
,
v
)->{
List
<
InstrumentPanelPermission
>
waitings
=
permissions
.
stream
().
filter
(
x
->
PublishedStatus
.
WAIT_PUBLISHED
.
value
.
equals
(
x
.
getPublished
())).
collect
(
Collectors
.
toList
());
List
<
InstrumentPanelPermission
>
publishs
=
permissions
.
stream
().
filter
(
x
->
PublishedStatus
.
PUBLISHED
.
value
.
equals
(
x
.
getPublished
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
waitings
))
{
waitings
.
forEach
(
x
->
{
x
.
setPublished
(
PublishedStatus
.
PUBLISHED
.
value
);
baseMapper
.
updateById
(
x
);
});
if
(
CollectionUtils
.
isNotEmpty
(
publishs
))
{
publishs
.
forEach
(
x
->
{
x
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
x
);
});
}
}
});
}
}
}
@Override
@Override
public
List
<
InstrumentPanelPermissionVo
>
selectPermissionByPanelId
(
@NonNull
String
instrumentPanelId
)
{
public
List
<
InstrumentPanelPermission
>
getPermissionByPanelIdAndPublishStatus
(
String
panelId
,
String
publishStatus
)
{
return
null
;
LambdaQueryWrapper
<
InstrumentPanelPermission
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
InstrumentPanelPermission:
:
getPanelId
,
panelId
);
where
.
eq
(
InstrumentPanelPermission:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
if
(
publishStatus
!=
null
)
{
where
.
eq
(
InstrumentPanelPermission:
:
getPublished
,
publishStatus
);
}
return
baseMapper
.
selectList
(
where
);
}
@Override
public
void
offlinePermission
(
String
panelId
)
{
List
<
InstrumentPanelPermission
>
permissions
=
getPermissionByPanelIdAndPublishStatus
(
panelId
,
null
);
long
waitP
=
permissions
.
stream
().
filter
(
x
->
PublishedStatus
.
WAIT_PUBLISHED
.
value
.
equals
(
x
.
getPublished
())).
count
();
List
<
InstrumentPanelPermission
>
publish
=
permissions
.
stream
().
filter
(
x
->
PublishedStatus
.
PUBLISHED
.
value
.
equals
(
x
.
getPublished
())).
collect
(
Collectors
.
toList
());
if
(
waitP
>
0
){
if
(
CollectionUtils
.
isNotEmpty
(
publish
)){
publish
.
forEach
(
x
->{
x
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
x
);
});
}
}
else
{
if
(
CollectionUtils
.
isNotEmpty
(
publish
)){
publish
.
forEach
(
push
->{
InstrumentPanelPermission
p
=
new
InstrumentPanelPermission
();
BeanUtils
.
copyProperties
(
push
,
p
);
p
.
setPublished
(
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
p
.
setId
(
IdWorker
.
get32UUID
());
baseMapper
.
insert
(
p
);
push
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
push
);
});
}
}
}
}
}
}
src/main/java/com/syc/slm/slmbi/service/impl/InstrumentPanelServiceImpl.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.slmbi.dao.InstrumentPanelMapper
;
import
com.syc.slm.slmbi.dao.InstrumentPanelMapper
;
import
com.syc.slm.slmbi.dto.QueryInstrumentPanelDTO
;
import
com.syc.slm.slmbi.dto.SaveInstrumentPanelDTO
;
import
com.syc.slm.slmbi.dto.SaveInstrumentPanelDTO
;
import
com.syc.slm.slmbi.
dto.SearchInstrumentPanelDTO
;
import
com.syc.slm.slmbi.
entity.BaseEntity
;
import
com.syc.slm.slmbi.entity.InstrumentPanel
;
import
com.syc.slm.slmbi.entity.InstrumentPanel
;
import
com.syc.slm.slmbi.service.InstrumentPanelService
;
import
com.syc.slm.slmbi.entity.InstrumentPanelDraft
;
import
com.syc.slm.slmbi.entity.InstrumentPanelTree
;
import
com.syc.slm.slmbi.enums.AccessType
;
import
com.syc.slm.slmbi.enums.NodeType
;
import
com.syc.slm.slmbi.enums.PublishedStatus
;
import
com.syc.slm.slmbi.exception.SysException
;
import
com.syc.slm.slmbi.service.*
;
import
com.syc.slm.slmbi.vo.InstrumentPanelConfigVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelVo
;
import
com.syc.slm.slmbi.vo.InstrumentPanelVo
;
import
com.syc.slm.slmbi.vo.PanelTreeNodeVo
;
import
lombok.NonNull
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
/**
* slm-bi
* slm-bi
...
@@ -19,46 +42,255 @@ import java.util.List;
...
@@ -19,46 +42,255 @@ import java.util.List;
* @author : lin
* @author : lin
* @date : 2021-03-25 16:17
* @date : 2021-03-25 16:17
**/
**/
@Slf4j
@Service
@Service
public
class
InstrumentPanelServiceImpl
extends
ServiceImpl
<
InstrumentPanelMapper
,
InstrumentPanel
>
public
class
InstrumentPanelServiceImpl
extends
ServiceImpl
<
InstrumentPanelMapper
,
InstrumentPanel
>
implements
InstrumentPanelService
{
implements
InstrumentPanelService
{
@Autowired
private
InstrumentPanelTreeService
treeService
;
@Autowired
private
InstrumentPanelPermissionService
permissionService
;
@Autowired
private
InstrumentPanelConfigService
configService
;
@Autowired
private
InstrumentPanelDraftService
draftService
;
@Override
@Override
public
IPage
<
InstrumentPanelVo
>
selectInstrumentPanelList
(
SearchInstrumentPanelDTO
where
)
{
@Transactional
(
readOnly
=
true
)
return
null
;
public
IPage
<
InstrumentPanelVo
>
selectInstrumentPanelList
(
String
appId
,
QueryInstrumentPanelDTO
query
)
{
IPage
<
InstrumentPanelVo
>
page
=
new
Page
<>(
query
.
getCurrent
(),
query
.
getSize
());
QueryWrapper
<
InstrumentPanel
>
where
=
new
QueryWrapper
<>();
if
(
StringUtils
.
isEmpty
(
appId
)){
throw
new
SysException
(
"appId必须传入"
);
}
where
.
eq
(
"p.app_id"
,
appId
);
if
(
StringUtils
.
isEmpty
(
query
.
getGroupId
())){
throw
new
SysException
(
"必须选择需要查询的仪表板分组"
);
}
where
.
eq
(
"p.group_id"
,
query
.
getGroupId
());
where
.
eq
(
"p.record_status"
,
SlmConstants
.
DATA_VALID
);
if
(
StringUtils
.
isNotEmpty
(
query
.
getName
()))
{
where
.
and
(
x
->
x
.
like
(
"p.name"
,
query
.
getName
()).
or
().
like
(
"p.creator_name"
,
query
.
getName
()).
or
().
like
(
"p.updater_name"
,
query
.
getName
()));
}
if
(
StringUtils
.
isNotEmpty
(
query
.
getPublished
()))
{
where
.
eq
(
"p.published"
,
query
.
getPublished
());
}
if
(
query
.
getUpdateTimeBegin
()
!=
null
)
{
where
.
ge
(
"p.update_time"
,
query
.
getUpdateTimeBegin
());
}
if
(
query
.
getUpdateTimeEnd
()
!=
null
)
{
where
.
le
(
"p.update_time"
,
query
.
getUpdateTimeEnd
());
}
IPage
<
InstrumentPanelVo
>
response
=
baseMapper
.
selectInstrumentPanelList
(
page
,
where
);
if
(
ObjectUtils
.
isNotEmpty
(
response
)){
if
(
CollectionUtils
.
isNotEmpty
(
response
.
getRecords
())){
Set
<
String
>
ids
=
response
.
getRecords
()
.
stream
()
.
filter
(
x
->
"未发布"
.
equals
(
x
.
getPublished
()))
.
map
(
BaseEntity:
:
getId
)
.
collect
(
Collectors
.
toSet
());
if
(
CollectionUtils
.
isNotEmpty
(
ids
)){
List
<
InstrumentPanelDraft
>
drafts
=
draftService
.
getByIds
(
ids
);
if
(
CollectionUtils
.
isNotEmpty
(
drafts
)){
Set
<
String
>
draftIds
=
drafts
.
stream
().
map
(
InstrumentPanelDraft:
:
getPanelId
).
collect
(
Collectors
.
toSet
());
response
.
getRecords
().
forEach
(
x
->{
if
(
draftIds
.
contains
(
x
.
getId
())){
x
.
setHasWaitPublish
(
"有未发布版本"
);
}
});
}
}
}
}
return
response
;
}
}
@Override
@Override
public
String
savePanel
(
SaveInstrumentPanelDTO
panel
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
return
null
;
public
String
savePanel
(
String
appId
,
SaveInstrumentPanelDTO
panel
)
{
log
.
info
(
"保存仪表板"
);
return
savePanelData
(
appId
,
panel
);
}
}
@Override
@Override
public
Boolean
batchPublish
(
List
<
String
>
ids
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
return
null
;
public
List
<
String
>
batchPublish
(
List
<
String
>
ids
)
{
if
(
CollectionUtils
.
isEmpty
(
ids
))
{
throw
new
SysException
(
"请选择你要操作的数据"
);
}
List
<
InstrumentPanel
>
panels
=
baseMapper
.
selectBatchIds
(
ids
);
if
(
CollectionUtils
.
isNotEmpty
(
panels
))
{
panels
.
forEach
(
x
->
{
x
.
setPublished
(
PublishedStatus
.
PUBLISHED
.
value
);
baseMapper
.
updateById
(
x
);
});
log
.
info
(
"修改配置状态为发布状态"
);
configService
.
publishConfigByPanelIds
(
ids
);
log
.
info
(
"修改权限状态为发布状态"
);
permissionService
.
publishPermissionByPanelIds
(
ids
);
log
.
info
(
"复制一份草稿"
);
draftService
.
saveDrafts
(
panels
);
}
return
ids
;
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
String
delPanel
(
String
id
)
{
public
String
delPanel
(
String
id
)
{
return
null
;
if
(
StringUtils
.
isEmpty
(
id
))
{
throw
new
SysException
(
"请选择你要操作的数据"
);
}
InstrumentPanel
panel
=
baseMapper
.
selectById
(
id
);
if
(
SlmConstants
.
DATA_DELETED
.
equals
(
panel
.
getRecordStatus
()))
{
throw
new
SysException
(
"该数据已被删除,请刷新页面"
);
}
panel
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
panel
);
log
.
info
(
"删除该仪表板下的配置"
);
delAllSetting
(
id
);
log
.
info
(
"删除仪表板草稿表"
);
InstrumentPanelDraft
draft
=
draftService
.
getByPanelId
(
id
);
draft
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
draftService
.
updateById
(
draft
);
return
id
;
}
}
@Override
@Override
public
String
saveAsPanel
(
SaveInstrumentPanelDTO
instrumentPanelDTO
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
return
null
;
public
String
saveAsPanel
(
String
appId
,
SaveInstrumentPanelDTO
panel
)
{
log
.
info
(
"仪表板另存为"
);
return
savePanelData
(
appId
,
panel
);
}
}
@Override
@Override
@Transactional
(
readOnly
=
true
)
public
Boolean
showRecoveryBtn
(
String
id
)
{
public
Boolean
showRecoveryBtn
(
String
id
)
{
return
null
;
return
draftService
.
getByPanelId
(
id
)
!=
null
;
}
}
@Override
@Override
public
String
recoveryPanel
(
String
id
)
{
@Transactional
(
readOnly
=
true
)
return
null
;
public
InstrumentPanelConfigVo
recoveryPanel
(
String
id
)
{
return
configService
.
getPublishConfigByPanelId
(
id
);
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
String
offline
(
String
id
)
{
public
String
offline
(
String
id
)
{
return
null
;
if
(
StringUtils
.
isBlank
(
id
))
{
throw
new
SysException
(
"请选择你要操作的数据"
);
}
InstrumentPanel
panel
=
baseMapper
.
selectById
(
id
);
if
(
ObjectUtils
.
isEmpty
(
panel
))
{
throw
new
SysException
(
"该数据已不存在,请刷新页面"
);
}
if
(
SlmConstants
.
DATA_DELETED
.
equals
(
panel
.
getRecordStatus
()))
{
throw
new
SysException
(
"该数据已被删除,请刷新页面"
);
}
if
(
PublishedStatus
.
WAIT_PUBLISHED
.
value
.
equals
(
panel
.
getPublished
())){
throw
new
SysException
(
"该仪表板已被下线,请刷新页面"
);
}
panel
.
setPublished
(
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
baseMapper
.
updateById
(
panel
);
log
.
info
(
"删除草稿"
);
InstrumentPanelDraft
draft
=
draftService
.
getByPanelId
(
panel
.
getId
());
if
(
ObjectUtils
.
isNotEmpty
(
draft
)){
draft
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
draftService
.
updateById
(
draft
);
}
log
.
info
(
"更新仪表板配置为待发布状态"
);
configService
.
offlineConfig
(
panel
.
getId
(),
null
);
log
.
info
(
"更新仪表板权限为待发布状态"
);
permissionService
.
offlinePermission
(
panel
.
getId
());
return
id
;
}
}
@Override
public
void
batchUpdatePanelByIds
(
Set
<
String
>
panelIds
,
Integer
recordStatus
)
{
if
(
CollectionUtils
.
isNotEmpty
(
panelIds
))
{
baseMapper
.
batchUpdatePanelByIds
(
panelIds
,
recordStatus
);
}
}
@Override
public
void
checkName
(
@NonNull
String
appId
,
String
panelId
,
@NonNull
String
panelName
)
{
LambdaQueryWrapper
<
InstrumentPanel
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
InstrumentPanel:
:
getName
,
panelName
);
wrapper
.
eq
(
InstrumentPanel:
:
getAppId
,
appId
);
wrapper
.
eq
(
InstrumentPanel:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
if
(
StringUtils
.
isNotEmpty
(
panelId
))
{
wrapper
.
ne
(
InstrumentPanel:
:
getId
,
panelId
);
}
if
(
baseMapper
.
selectCount
(
wrapper
)
>
0
)
{
throw
new
SysException
(
"仪表板名字:"
+
panelName
+
"已存在!"
);
}
}
@Override
public
List
<
InstrumentPanel
>
getByIds
(
Set
<
String
>
panelIds
)
{
return
baseMapper
.
selectBatchIds
(
panelIds
);
}
@Override
public
List
<
PanelTreeNodeVo
>
selectPanelByIds
(
Set
<
String
>
finalPanelIds
,
String
name
)
{
return
baseMapper
.
selectPanelByIds
(
finalPanelIds
,
name
);
}
private
String
savePanelData
(
String
appId
,
SaveInstrumentPanelDTO
panel
)
{
if
(
StringUtils
.
isEmpty
(
panel
.
getName
()))
{
throw
new
SysException
(
"仪表板名字必填"
);
}
if
(
StringUtils
.
isEmpty
(
panel
.
getGroupId
()))
{
throw
new
SysException
(
"仪表板分组必填"
);
}
log
.
info
(
"检查仪表板名称是否重复"
);
this
.
checkName
(
appId
,
null
,
panel
.
getName
());
log
.
info
(
"保存仪表板访问权限"
);
String
panelId
=
IdWorker
.
get32UUID
();
String
accessType
=
AccessType
.
PUBLIC
.
value
;
if
(
ObjectUtils
.
isNotEmpty
(
panel
.
getPermission
())
&&
StringUtils
.
isNotEmpty
(
panel
.
getPermission
().
getAccessType
()))
{
accessType
=
panel
.
getPermission
().
getAccessType
();
permissionService
.
savePanelPermission
(
panel
.
getPermission
().
getCustomPermissions
(),
panelId
,
panel
.
getPermission
().
getAccessType
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
}
InstrumentPanel
entity
=
new
InstrumentPanel
(
panelId
,
panel
.
getName
(),
panel
.
getGroupId
(),
accessType
,
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
log
.
info
(
"保存仪表板配置"
);
if
(
StringUtils
.
isNotEmpty
(
panel
.
getConfigDetails
()))
{
configService
.
savePanelConfig
(
panelId
,
panel
.
getConfigDetails
(),
PublishedStatus
.
WAIT_PUBLISHED
.
value
);
}
log
.
info
(
"初始化仪表板树"
);
treeService
.
initTree
(
entity
.
getGroupId
(),
NodeType
.
PANEL
.
value
,
entity
.
getId
(),
entity
.
getName
());
if
(
CollectionUtils
.
isNotEmpty
(
panel
.
getAssemblys
()))
{
InstrumentPanelTree
tree
=
treeService
.
getById
(
entity
.
getId
());
log
.
info
(
"保存仪表板组件树"
);
treeService
.
savePanelAssemblyTree
(
tree
,
panel
.
getAssemblys
(),
entity
.
getId
());
}
else
{
log
.
info
(
"前端没有构建组件树"
);
}
log
.
info
(
"保存仪表板数据"
);
baseMapper
.
insert
(
entity
);
return
panelId
;
}
private
void
delAllSetting
(
String
id
)
{
log
.
info
(
"删除仪表板对应权限"
);
permissionService
.
delPermissionByPanelId
(
id
,
null
);
log
.
info
(
"删除仪表板对应配置"
);
configService
.
delConfig
(
id
,
null
);
log
.
info
(
"删除仪表板树"
);
treeService
.
delTreeByPanelId
(
id
);
}
}
}
src/main/java/com/syc/slm/slmbi/service/impl/InstrumentPanelTreeServiceImpl.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Sets
;
import
com.google.gson.reflect.TypeToken
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.RestTemplateUtils
;
import
com.syc.slm.slmbi.dao.InstrumentPanelTreeMapper
;
import
com.syc.slm.slmbi.dto.InstrumentPanelAssemblyDTO
;
import
com.syc.slm.slmbi.entity.*
;
import
com.syc.slm.slmbi.enums.NodeType
;
import
com.syc.slm.slmbi.enums.PublishedStatus
;
import
com.syc.slm.slmbi.exception.SysException
;
import
com.syc.slm.slmbi.service.*
;
import
com.syc.slm.slmbi.vo.*
;
import
lombok.NonNull
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.filefilter.FalseFileFilter
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 仪表板树聚合表
*
* @author lin
* @date 2021-04-01 10:52:44
*/
@Service
@Slf4j
public
class
InstrumentPanelTreeServiceImpl
extends
ServiceImpl
<
InstrumentPanelTreeMapper
,
InstrumentPanelTree
>
implements
InstrumentPanelTreeService
{
@Autowired
private
InstrumentPanelDraftService
draftService
;
@Autowired
private
InstrumentPanelGroupService
groupService
;
@Autowired
private
InstrumentPanelConfigService
configService
;
@Autowired
private
InstrumentPanelService
panelService
;
@Override
public
void
batchUpdateTreeByIds
(
Set
<
String
>
treeIds
,
Integer
recordStatus
)
{
if
(
CollectionUtils
.
isNotEmpty
(
treeIds
))
{
baseMapper
.
batchUpdateTreeByIds
(
treeIds
,
recordStatus
);
}
}
@Override
public
void
initTree
(
String
nodeId
,
String
nodeType
,
String
bizId
,
String
bizName
)
{
InstrumentPanelTree
panelTree
=
baseMapper
.
selectById
(
nodeId
);
InstrumentPanelTree
tree
=
new
InstrumentPanelTree
();
tree
.
setId
(
bizId
);
tree
.
setNodeType
(
nodeType
);
tree
.
setFullName
(
panelTree
.
getFullName
()
+
"."
+
bizName
);
tree
.
setFullId
(
panelTree
.
getFullId
()
+
"."
+
bizId
);
tree
.
setName
(
bizName
);
baseMapper
.
insert
(
tree
);
}
@Override
public
void
delTreeByPanelId
(
String
panelId
)
{
InstrumentPanelTree
tree
=
baseMapper
.
selectById
(
panelId
);
tree
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
tree
);
LambdaQueryWrapper
<
InstrumentPanelTree
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
likeRight
(
InstrumentPanelTree:
:
getFullId
,
tree
.
getFullId
()
+
"."
);
List
<
InstrumentPanelTree
>
list
=
baseMapper
.
selectList
(
where
);
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
list
.
forEach
(
x
->
{
x
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
x
);
});
}
}
@Override
public
void
savePanelAssemblyTree
(
InstrumentPanelTree
tree
,
List
<
InstrumentPanelAssemblyDTO
>
assembly
,
String
panelId
)
{
if
(
CollectionUtils
.
isNotEmpty
(
assembly
))
{
assembly
.
forEach
(
x
->{
if
(
StringUtils
.
isBlank
(
x
.
getName
())
||
StringUtils
.
isBlank
(
x
.
getKey
())){
log
.
info
(
"不要传入空得组件树"
);
}
else
{
InstrumentPanelTree
t
=
new
InstrumentPanelTree
();
t
.
setId
(
IdWorker
.
get32UUID
());
t
.
setNodeType
(
NodeType
.
ASSEMBLY
.
value
);
t
.
setFullId
(
tree
.
getFullId
()
+
"."
+
t
.
getId
());
t
.
setFullName
(
tree
.
getFullName
()
+
"."
+
x
.
getName
());
t
.
setAssemblyKey
(
x
.
getKey
());
t
.
setName
(
x
.
getName
());
baseMapper
.
insert
(
t
);
}
});
}
}
@Override
public
void
delTreeByPanelFullId
(
String
fullId
)
{
LambdaQueryWrapper
<
InstrumentPanelTree
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
likeRight
(
InstrumentPanelTree:
:
getFullId
,
fullId
+
"."
);
List
<
InstrumentPanelTree
>
trees
=
baseMapper
.
selectList
(
where
);
if
(
CollectionUtils
.
isNotEmpty
(
trees
))
{
trees
.
forEach
(
x
->
{
x
.
setRecordStatus
(
SlmConstants
.
DATA_DELETED
);
baseMapper
.
updateById
(
x
);
});
}
}
@Override
public
void
updatePanelTreeFullName
(
String
panelId
,
String
panelName
,
String
groupId
)
{
InstrumentPanelTree
groupTree
=
baseMapper
.
selectById
(
groupId
);
InstrumentPanelTree
tree
=
baseMapper
.
selectById
(
panelId
);
tree
.
setFullName
(
groupTree
.
getFullName
()
+
"."
+
panelName
);
tree
.
setFullId
(
groupTree
.
getFullId
()
+
"."
+
panelId
);
tree
.
setName
(
panelName
);
baseMapper
.
updateById
(
tree
);
}
@Override
public
List
<
PanelTreeNodeVo
>
loadTrees
(
String
appId
,
String
name
,
String
uri
,
CurrentUser
user
)
{
if
(
StringUtils
.
isBlank
(
name
)){
return
loadTrees
(
appId
,
uri
,
user
);
}
List
<
PanelTreeNodeVo
>
lists
=
Lists
.
newArrayList
();
R
<
Map
<
String
,
String
>>
result
=
setDeptAndRole
(
user
,
uri
);
Map
<
String
,
String
>
detach
=
result
.
detach
();
String
userId
=
user
.
getUid
();
String
officeIds
=
detach
.
get
(
"deptIds"
);
String
roleId
=
detach
.
get
(
"roleIds"
);
LambdaQueryWrapper
<
InstrumentPanelTree
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getAppId
,
appId
);
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
eq
(
InstrumentPanelTree:
:
getNodeType
,
NodeType
.
PANEL
.
value
);
if
(
StringUtils
.
isNotBlank
(
name
))
{
where
.
like
(
InstrumentPanelTree:
:
getFullName
,
name
);
}
List
<
InstrumentPanelTree
>
trees
=
baseMapper
.
selectList
(
where
);
if
(
CollectionUtils
.
isNotEmpty
(
trees
))
{
Set
<
String
>
panelIds
=
trees
.
stream
().
map
(
BaseEntity:
:
getId
).
collect
(
Collectors
.
toSet
());
List
<
InstrumentPanelDraft
>
panels
=
draftService
.
selectDraftList
(
appId
,
panelIds
,
officeIds
,
userId
,
roleId
);
if
(
CollectionUtils
.
isNotEmpty
(
panels
))
{
Set
<
String
>
publishIds
=
panels
.
stream
().
map
(
InstrumentPanelDraft:
:
getPanelId
).
collect
(
Collectors
.
toSet
());
Set
<
String
[]>
finalPanelArrays
=
trees
.
stream
()
.
filter
(
x
->
publishIds
.
contains
(
x
.
getId
()))
.
map
(
x
->
x
.
getFullId
().
split
(
"[.]"
))
.
collect
(
Collectors
.
toSet
());
Set
<
String
>
finalPanelIds
=
Sets
.
newHashSet
();
finalPanelArrays
.
forEach
(
x
->
finalPanelIds
.
addAll
(
Arrays
.
asList
(
x
)));
List
<
PanelTreeNodeVo
>
panelTreeNodeVos
=
panelService
.
selectPanelByIds
(
finalPanelIds
,
name
);
if
(
CollectionUtils
.
isNotEmpty
(
panelTreeNodeVos
))
{
lists
.
addAll
(
panelTreeNodeVos
);
}
List
<
PanelTreeNodeVo
>
groupTreeNodeVos
=
groupService
.
selectGroupByIds
(
finalPanelIds
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
groupTreeNodeVos
))
{
if
(
CollectionUtils
.
isEmpty
(
panelTreeNodeVos
)
&&
StringUtils
.
isNotBlank
(
name
)){
Set
<
String
>
groupIds
=
groupTreeNodeVos
.
stream
().
filter
(
x
->
x
.
getName
().
contains
(
name
)).
map
(
PanelTreeNodeVo:
:
getId
).
collect
(
Collectors
.
toSet
());
List
<
InstrumentPanelTree
>
groupTrees
=
baseMapper
.
selectBatchIds
(
groupIds
);
groupIds
.
clear
();
groupTrees
.
forEach
(
x
->{
if
(
x
.
getFullId
().
contains
(
"."
)){
groupIds
.
addAll
(
Arrays
.
asList
(
x
.
getFullId
().
split
(
"[.]"
)));
}
else
{
groupIds
.
add
(
x
.
getFullId
());
}
});
groupTreeNodeVos
=
groupService
.
selectGroupByIds
(
groupIds
,
null
);
}
lists
.
addAll
(
groupTreeNodeVos
);
}
}
}
return
lists
;
}
@Override
public
List
<
PanelTreeNodeVo
>
loadTrees
(
String
appId
,
String
uri
,
CurrentUser
user
)
{
List
<
PanelTreeNodeVo
>
lists
=
Lists
.
newArrayList
();
R
<
Map
<
String
,
String
>>
result
=
setDeptAndRole
(
user
,
uri
);
Map
<
String
,
String
>
detach
=
result
.
detach
();
String
userId
=
user
.
getUid
();
String
officeIds
=
detach
.
get
(
"deptIds"
);
String
roleId
=
detach
.
get
(
"roleIds"
);
LambdaQueryWrapper
<
InstrumentPanelTree
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getAppId
,
appId
);
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
eq
(
InstrumentPanelTree:
:
getNodeType
,
NodeType
.
PANEL
.
value
);
List
<
InstrumentPanelTree
>
trees
=
baseMapper
.
selectList
(
where
);
if
(
CollectionUtils
.
isNotEmpty
(
trees
))
{
Set
<
String
>
panelIds
=
trees
.
stream
().
map
(
BaseEntity:
:
getId
).
collect
(
Collectors
.
toSet
());
List
<
InstrumentPanelDraft
>
panels
=
draftService
.
selectDraftList
(
appId
,
panelIds
,
officeIds
,
userId
,
roleId
);
if
(
CollectionUtils
.
isNotEmpty
(
panels
))
{
Set
<
String
>
publishIds
=
panels
.
stream
().
map
(
InstrumentPanelDraft:
:
getPanelId
).
collect
(
Collectors
.
toSet
());
Set
<
String
[]>
finalPanelArrays
=
trees
.
stream
()
.
filter
(
x
->
publishIds
.
contains
(
x
.
getId
()))
.
map
(
x
->
x
.
getFullId
().
split
(
"[.]"
))
.
collect
(
Collectors
.
toSet
());
Set
<
String
>
finalPanelIds
=
Sets
.
newHashSet
();
finalPanelArrays
.
forEach
(
x
->
{
if
(
x
.
length
>
3
)
{
for
(
int
i
=
0
;
i
<
x
.
length
;
i
++)
{
if
(
i
==
2
)
{
break
;
}
finalPanelIds
.
add
(
x
[
i
]);
}
}
});
List
<
PanelTreeNodeVo
>
groupTreeNodeVos
=
groupService
.
selectGroupByIds
(
finalPanelIds
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
groupTreeNodeVos
))
{
lists
.
addAll
(
groupTreeNodeVos
);
}
List
<
PanelTreeNodeVo
>
panelTreeNodeVos
=
panelService
.
selectPanelByIds
(
finalPanelIds
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
panelTreeNodeVos
))
{
lists
.
addAll
(
panelTreeNodeVos
);
}
else
{
if
(
CollectionUtils
.
isNotEmpty
(
groupTreeNodeVos
))
{
String
groupId
=
groupTreeNodeVos
.
stream
().
filter
(
x
->
StringUtils
.
isNotBlank
(
x
.
getParentId
())).
findFirst
().
get
().
getId
();
boolean
flag
=
true
;
int
num
=
0
;
while
(
flag
)
{
if
(
num
>
10
){
break
;
}
num
++;
List
<
PanelTreeNodeVo
>
childrenNodes
=
this
.
children
(
groupId
,
null
,
uri
,
user
);
if
(
CollectionUtils
.
isEmpty
(
childrenNodes
)){
flag
=
false
;
}
long
count
=
childrenNodes
.
stream
()
.
filter
(
x
->
NodeType
.
PANEL
.
value
.
equals
(
x
.
getNodeType
()))
.
count
();
if
(
count
==
0
)
{
lists
.
addAll
(
childrenNodes
);
groupId
=
childrenNodes
.
stream
()
.
filter
(
x
->
NodeType
.
GROUP
.
value
.
equals
(
x
.
getNodeType
()))
.
findFirst
()
.
get
()
.
getId
();
}
else
{
flag
=
false
;
lists
.
addAll
(
childrenNodes
);
}
}
}
}
}
}
return
lists
;
}
@Override
@Transactional
(
readOnly
=
true
)
public
List
<
PanelTreeNodeVo
>
children
(
String
groupId
,
String
name
,
String
uri
,
CurrentUser
user
)
{
List
<
PanelTreeNodeVo
>
lists
=
Lists
.
newArrayList
();
R
<
Map
<
String
,
String
>>
result
=
setDeptAndRole
(
user
,
uri
);
Map
<
String
,
String
>
detach
=
result
.
detach
();
String
userId
=
user
.
getUid
();
String
officeIds
=
detach
.
get
(
"deptIds"
);
String
roleId
=
detach
.
get
(
"roleIds"
);
InstrumentPanelTree
tree
=
baseMapper
.
selectById
(
groupId
);
LambdaQueryWrapper
<
InstrumentPanelTree
>
where
=
new
LambdaQueryWrapper
<>();
where
.
likeRight
(
InstrumentPanelTree:
:
getFullId
,
tree
.
getFullId
()
+
"."
);
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
if
(
StringUtils
.
isNotBlank
(
name
))
{
where
.
like
(
InstrumentPanelTree:
:
getFullName
,
name
);
}
where
.
eq
(
InstrumentPanelTree:
:
getNodeType
,
NodeType
.
PANEL
.
value
);
List
<
InstrumentPanelTree
>
trees
=
baseMapper
.
selectList
(
where
);
if
(
CollectionUtils
.
isNotEmpty
(
trees
))
{
Set
<
String
>
panelIds
=
trees
.
stream
().
map
(
BaseEntity:
:
getId
).
collect
(
Collectors
.
toSet
());
List
<
InstrumentPanelDraft
>
panels
=
draftService
.
selectDraftList
(
tree
.
getAppId
(),
panelIds
,
officeIds
,
userId
,
roleId
);
if
(
CollectionUtils
.
isNotEmpty
(
panels
))
{
Set
<
String
>
publishIds
=
panels
.
stream
().
map
(
InstrumentPanelDraft:
:
getPanelId
).
collect
(
Collectors
.
toSet
());
Set
<
String
>
finalPanelIds
=
trees
.
stream
().
filter
(
x
->
publishIds
.
contains
(
x
.
getId
())).
map
(
x
->
{
String
fullId
=
x
.
getFullId
();
fullId
=
fullId
.
replace
(
tree
.
getFullId
()
+
"."
,
""
);
if
(
fullId
.
contains
(
"."
))
{
return
fullId
.
substring
(
0
,
fullId
.
indexOf
(
"."
));
}
else
{
return
fullId
;
}
}).
collect
(
Collectors
.
toSet
());
if
(
CollectionUtils
.
isNotEmpty
(
finalPanelIds
))
{
List
<
PanelTreeNodeVo
>
panelTreeNodeVos
=
panelService
.
selectPanelByIds
(
finalPanelIds
,
name
);
if
(
CollectionUtils
.
isNotEmpty
(
panelTreeNodeVos
))
{
lists
.
addAll
(
panelTreeNodeVos
);
finalPanelIds
.
addAll
(
panelTreeNodeVos
.
stream
()
.
filter
(
x
->
!
groupId
.
equals
(
x
.
getParentId
()))
.
map
(
PanelTreeNodeVo:
:
getParentId
)
.
collect
(
Collectors
.
toSet
()));
}
List
<
PanelTreeNodeVo
>
groupTreeNodeVos
=
groupService
.
selectGroupByIds
(
finalPanelIds
,
name
);
if
(
CollectionUtils
.
isNotEmpty
(
groupTreeNodeVos
))
{
lists
.
addAll
(
groupTreeNodeVos
);
}
}
}
}
return
lists
;
}
@Override
public
void
updateFullNameByGroupId
(
String
groupId
,
String
panelId
,
String
panelName
)
{
InstrumentPanelTree
group
=
baseMapper
.
selectById
(
groupId
);
InstrumentPanelTree
panelTree
=
baseMapper
.
selectById
(
panelId
);
String
beforeFullName
=
panelTree
.
getFullName
();
String
beforeFullId
=
panelTree
.
getFullId
();
log
.
info
(
"更新自身的树状结构"
);
panelTree
.
setFullName
(
group
.
getFullName
()+
"."
+
panelName
);
panelTree
.
setFullId
(
group
.
getFullId
()+
"."
+
panelId
);
panelTree
.
setName
(
panelName
);
baseMapper
.
updateById
(
panelTree
);
if
(
ObjectUtils
.
isNotEmpty
(
group
)){
log
.
info
(
"更新组件的树状结构"
);
LambdaQueryWrapper
<
InstrumentPanelTree
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
where
.
likeRight
(
InstrumentPanelTree:
:
getFullId
,
beforeFullId
+
"."
);
List
<
InstrumentPanelTree
>
trees
=
baseMapper
.
selectList
(
where
);
if
(
CollectionUtils
.
isNotEmpty
(
trees
)){
trees
.
forEach
(
x
->{
x
.
setFullId
(
x
.
getFullId
().
replace
(
beforeFullId
,
panelTree
.
getFullId
()));
String
name
=
x
.
getFullName
().
substring
(
beforeFullName
.
length
()+
1
);
x
.
setFullName
(
panelTree
.
getFullName
()+
"."
+
name
);
x
.
setName
(
name
);
baseMapper
.
updateById
(
x
);
});
}
}
}
@Override
@Transactional
(
readOnly
=
true
)
public
List
<
PanelTreeNodeVo
>
copyTreeList
(
String
appId
,
String
name
)
{
return
getCopyAndCiteTrees
(
appId
,
name
,
false
);
}
@Override
@Transactional
(
readOnly
=
true
)
public
List
<
PanelTreeNodeVo
>
citeTreeList
(
String
appId
,
String
name
)
{
return
getCopyAndCiteTrees
(
appId
,
name
,
true
);
}
@Override
public
Map
<
String
,
String
>
assembly
(
String
appId
,
String
panelId
)
{
return
configService
.
getAssemblyConfig
(
panelId
);
}
private
List
<
PanelTreeNodeVo
>
getCopyAndCiteTrees
(
String
appId
,
String
name
,
boolean
showAssembly
)
{
LambdaQueryWrapper
<
InstrumentPanelTree
>
where
=
new
LambdaQueryWrapper
<>();
where
.
eq
(
BaseEntity:
:
getAppId
,
appId
);
where
.
eq
(
BaseEntity:
:
getRecordStatus
,
SlmConstants
.
DATA_VALID
);
if
(!
showAssembly
){
where
.
eq
(
InstrumentPanelTree:
:
getNodeType
,
NodeType
.
ASSEMBLY
.
value
);
}
List
<
InstrumentPanelTree
>
allGroups
=
baseMapper
.
selectList
(
where
);
List
<
InstrumentPanelTree
>
filteredTrees
=
allGroups
;
Map
<
String
,
InstrumentPanelTree
>
allMaps
=
allGroups
.
stream
().
collect
(
Collectors
.
toMap
(
InstrumentPanelTree:
:
getFullId
,
x
->
x
));
Map
<
String
,
InstrumentPanelTree
>
filteredMaps
=
allMaps
;
where
.
like
(
InstrumentPanelTree:
:
getName
,
name
);
if
(
StringUtils
.
isNotBlank
(
name
)){
filteredTrees
=
baseMapper
.
selectList
(
where
);
filteredMaps
=
filteredTrees
.
stream
().
collect
(
Collectors
.
toMap
(
InstrumentPanelTree:
:
getFullId
,
x
->
x
));
}
Stack
<
InstrumentPanelTree
>
stack
=
new
Stack
<>();
stack
.
addAll
(
filteredTrees
);
while
(!
stack
.
isEmpty
()){
InstrumentPanelTree
tree
=
stack
.
pop
();
String
fullId
=
tree
.
getFullId
();
int
lastDot
=
fullId
.
lastIndexOf
(
"."
);
String
pid
=
fullId
;
while
(
lastDot
>
0
){
pid
=
pid
.
substring
(
0
,
lastDot
);
InstrumentPanelTree
pTree
=
Optional
.
ofNullable
(
filteredMaps
.
get
(
pid
)).
orElse
(
allMaps
.
get
(
pid
));
if
(
pTree
!=
null
){
tree
.
setParentId
(
pid
.
substring
(
pid
.
lastIndexOf
(
"."
)+
1
));
filteredMaps
.
putIfAbsent
(
pid
,
pTree
);
stack
.
add
(
pTree
);
break
;
}
lastDot
=
pid
.
lastIndexOf
(
"."
);
}
}
return
CollectionUtils
.
isNotEmpty
(
filteredMaps
.
values
())?
SlmConstants
.
gson
.
fromJson
(
SlmConstants
.
gson
.
toJson
(
filteredMaps
.
values
()),
new
TypeToken
<
List
<
PanelTreeNodeVo
>>()
{}.
getType
()):
Lists
.
newArrayList
();
}
private
R
<
Map
<
String
,
String
>>
setDeptAndRole
(
CurrentUser
user
,
String
uri
){
Map
<
String
,
String
>
heads
=
Maps
.
newHashMap
();
heads
.
put
(
"token"
,
user
.
getToken
());
Map
<
String
,
String
>
uriVariables
=
Maps
.
newHashMap
();
uriVariables
.
put
(
"appId"
,
user
.
getAppId
());
return
RestTemplateUtils
.
get
(
uri
,
heads
,
new
TypeToken
<
R
<
Map
<
String
,
String
>>>()
{}.
getType
(),
uriVariables
);
}
}
src/main/java/com/syc/slm/slmbi/service/impl/PositionServiceImpl.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.gson.reflect.TypeToken
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.RestTemplateUtils
;
import
com.syc.slm.slmbi.vo.PositionVo
;
import
com.syc.slm.slmbi.vo.PositionVo
;
import
com.syc.slm.slmbi.service.PositionService
;
import
com.syc.slm.slmbi.service.PositionService
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* slm-bi
* slm-bi
...
@@ -15,8 +24,16 @@ import java.util.List;
...
@@ -15,8 +24,16 @@ import java.util.List;
**/
**/
@Service
@Service
public
class
PositionServiceImpl
implements
PositionService
{
public
class
PositionServiceImpl
implements
PositionService
{
@Override
@Override
public
List
<
PositionVo
>
selectPositionList
(
String
name
)
{
public
List
<
PositionVo
>
selectPositionList
(
String
uri
,
String
token
,
String
appId
,
String
name
)
{
return
null
;
Map
<
String
,
String
>
heads
=
Maps
.
newHashMap
();
heads
.
put
(
"token"
,
token
);
Map
<
String
,
String
>
uriVariables
=
Maps
.
newHashMap
();
uriVariables
.
put
(
"positionName"
,
name
);
uriVariables
.
put
(
"appId"
,
appId
);
R
<
List
<
PositionVo
>>
result
=
RestTemplateUtils
.
get
(
uri
,
heads
,
new
TypeToken
<
R
<
List
<
PositionVo
>>>()
{}.
getType
(),
uriVariables
);
return
result
.
detach
();
}
}
}
}
src/main/java/com/syc/slm/slmbi/service/impl/UserServiceImpl.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.syc.slm.slmbi.vo.UserVo
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.google.common.collect.Maps
;
import
com.google.gson.reflect.TypeToken
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.RestTemplateUtils
;
import
com.syc.slm.slmbi.service.UserService
;
import
com.syc.slm.slmbi.service.UserService
;
import
com.syc.slm.slmbi.vo.DeptVo
;
import
com.syc.slm.slmbi.vo.UserTreeVo
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* slm-bi
* slm-bi
...
@@ -16,7 +25,13 @@ import java.util.List;
...
@@ -16,7 +25,13 @@ import java.util.List;
@Service
@Service
public
class
UserServiceImpl
implements
UserService
{
public
class
UserServiceImpl
implements
UserService
{
@Override
@Override
public
List
<
UserVo
>
selectUserList
(
String
userName
)
{
public
List
<
UserTreeVo
>
selectUserList
(
String
appId
,
String
uri
,
String
token
,
String
userName
)
{
return
null
;
Map
<
String
,
String
>
heads
=
Maps
.
newHashMap
();
heads
.
put
(
"token"
,
token
);
Map
<
String
,
String
>
uriVariables
=
Maps
.
newHashMap
();
uriVariables
.
put
(
"userName"
,
userName
);
uriVariables
.
put
(
"appId"
,
appId
);
R
<
List
<
UserTreeVo
>>
result
=
RestTemplateUtils
.
get
(
uri
,
heads
,
new
TypeToken
<
R
<
List
<
UserTreeVo
>>>()
{}.
getType
(),
uriVariables
);
return
result
.
detach
();
}
}
}
}
src/main/java/com/syc/slm/slmbi/service/impl/VariableServiceImpl.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
package
com
.
syc
.
slm
.
slmbi
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.CollectionUtils
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.gson.reflect.TypeToken
;
import
com.syc.slm.common.core.constant.SlmConstants
;
import
com.syc.slm.common.core.util.R
;
import
com.syc.slm.common.core.util.RestTemplateUtils
;
import
com.syc.slm.slmbi.dto.HistoryVariableDTO
;
import
com.syc.slm.slmbi.dto.HistoryVariableDTO
;
import
com.syc.slm.slmbi.dto.QueryPageDTO
;
import
com.syc.slm.slmbi.dto.RealTimeVariableDTO
;
import
com.syc.slm.slmbi.dto.RealTimeVariableDTO
;
import
com.syc.slm.slmbi.dto.VariableDTO
;
import
com.syc.slm.slmbi.dto.VariableDTO
;
import
com.syc.slm.slmbi.service.VariableService
;
import
com.syc.slm.slmbi.service.VariableService
;
import
com.syc.slm.slmbi.vo.*
;
import
com.syc.slm.slmbi.vo.*
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -21,22 +31,93 @@ import java.util.Map;
...
@@ -21,22 +31,93 @@ import java.util.Map;
@Service
@Service
public
class
VariableServiceImpl
implements
VariableService
{
public
class
VariableServiceImpl
implements
VariableService
{
@Override
@Override
public
IPage
<
VariableVo
>
getVariableList
(
VariableDTO
variableDTO
)
{
public
IPage
<
VariableVo
>
getVariableList
(
VariableDTO
variableDTO
,
String
appId
,
String
token
,
String
uri
)
{
return
null
;
IPage
<
VariableVo
>
page
=
new
Page
<>(
variableDTO
.
getCurrent
(),
variableDTO
.
getSize
());
Map
<
String
,
String
>
p
=
Maps
.
newHashMap
();
p
.
put
(
"appId"
,
appId
);
p
.
put
(
"token"
,
token
);
p
.
put
(
"from"
,
null
);
p
.
put
(
"varType"
,
null
);
p
.
put
(
"type"
,
null
);
p
.
put
(
"equipmentId"
,
null
);
p
.
put
(
"customerId"
,
null
);
p
.
put
(
"name"
,
variableDTO
.
getVariableName
());
p
.
put
(
"desc"
,
variableDTO
.
getDescription
());
p
.
put
(
"unit"
,
null
);
p
.
put
(
"keyword"
,
null
);
p
.
put
(
"isCustomer"
,
null
);
p
.
put
(
"current"
,
variableDTO
.
getCurrent
()+
""
);
p
.
put
(
"size"
,
variableDTO
.
getSize
()+
""
);
Map
<
String
,
String
>
heads
=
Maps
.
newHashMap
();
heads
.
put
(
"token"
,
token
);
R
<
Map
<
String
,
Object
>>
result
=
RestTemplateUtils
.
get
(
uri
,
heads
,
new
TypeToken
<
R
<
Map
<
String
,
Object
>>>()
{
}.
getType
(),
p
);
Map
<
String
,
Object
>
detach
=
result
.
detach
();
if
(
CollectionUtils
.
isNotEmpty
(
detach
))
{
List
<
VariableVo
>
vos
=
SlmConstants
.
gsonLowerCaseWithUnderscores
.
fromJson
(
SlmConstants
.
gson
.
toJson
(
detach
.
get
(
"datas"
)),
new
TypeToken
<
List
<
VariableVo
>>()
{
}.
getType
());
page
.
setTotal
((
new
BigDecimal
(
detach
.
get
(
"total"
)
+
""
)).
longValue
());
page
.
setRecords
(
vos
);
}
return
page
;
}
}
@Override
@Override
public
List
<
VariableSourceVo
>
getVariableSourceList
()
{
public
List
<
VariableSourceVo
>
getVariableSourceList
()
{
return
null
;
List
<
VariableSourceVo
>
vos
=
Lists
.
newArrayList
();
VariableSourceVo
vo
=
new
VariableSourceVo
();
vo
.
setSourceId
(
"6"
);
vo
.
setSourceName
(
"请选择变量来源"
);
VariableSourceVo
vo1
=
new
VariableSourceVo
();
vo1
.
setSourceId
(
"1"
);
vo1
.
setSourceName
(
"基础采集点"
);
VariableSourceVo
vo2
=
new
VariableSourceVo
();
vo2
.
setSourceId
(
"4"
);
vo2
.
setSourceName
(
"配置变量/dc公式"
);
vos
.
add
(
vo
);
vos
.
add
(
vo1
);
vos
.
add
(
vo2
);
return
vos
;
}
}
@Override
@Override
public
List
<
VariableDeviceVo
>
getVariableDeviceList
()
{
public
IPage
<
VariableDeviceVo
>
getVariableDeviceList
(
String
token
,
String
appId
,
String
uri
,
QueryPageDTO
queryPageDTO
)
{
return
null
;
IPage
<
VariableDeviceVo
>
page
=
new
Page
<>(
queryPageDTO
.
getCurrent
(),
queryPageDTO
.
getSize
());
Map
<
String
,
String
>
p
=
Maps
.
newHashMap
();
p
.
put
(
"appId"
,
appId
);
p
.
put
(
"token"
,
token
);
p
.
put
(
"equipment_info_id"
,
null
);
p
.
put
(
"customer_id"
,
null
);
p
.
put
(
"q_name"
,
null
);
p
.
put
(
"search_code"
,
null
);
p
.
put
(
"search_model"
,
null
);
p
.
put
(
"warranty_status"
,
null
);
p
.
put
(
"page_num"
,
queryPageDTO
.
getCurrent
()
+
""
);
p
.
put
(
"page_size"
,
queryPageDTO
.
getSize
()
+
""
);
Map
<
String
,
String
>
heads
=
Maps
.
newHashMap
();
heads
.
put
(
"token"
,
token
);
R
<
Map
<
String
,
Object
>>
result
=
RestTemplateUtils
.
get
(
uri
,
heads
,
new
TypeToken
<
R
<
Map
<
String
,
Object
>>>()
{
}.
getType
(),
p
);
Map
<
String
,
Object
>
detach
=
result
.
detach
();
if
(
CollectionUtils
.
isNotEmpty
(
detach
))
{
List
<
VariableDeviceVo
>
vos
=
SlmConstants
.
gsonLowerCaseWithUnderscores
.
fromJson
(
SlmConstants
.
gson
.
toJson
(
detach
.
get
(
"result"
)),
new
TypeToken
<
List
<
VariableDeviceVo
>>()
{
}.
getType
());
page
.
setTotal
((
new
BigDecimal
(
detach
.
get
(
"total"
)
+
""
)).
longValue
());
page
.
setRecords
(
vos
);
}
return
page
;
}
}
@Override
@Override
public
Map
<
String
,
List
<
Map
<
String
,
RealTimeVariableVo
>>>
getVariableRealTimeDataList
(
RealTimeVariableDTO
variableDTO
)
{
public
Map
<
String
,
List
<
Map
<
String
,
RealTimeVariableVo
>>>
getVariableRealTimeDataList
(
RealTimeVariableDTO
variableDTO
)
{
return
null
;
return
null
;
}
}
...
...
src/main/java/com/syc/slm/slmbi/vo/CustomPermissionVo.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* slm-bi
* 自定义权限Vo
* @author : lin
* @date : 2021-04-07 17:52
**/
@ApiModel
(
value
=
"自定义权限Vo"
)
@Data
public
class
CustomPermissionVo
{
@ApiModelProperty
(
value
=
"自定义权限类型"
,
required
=
true
)
private
String
type
;
@ApiModelProperty
(
value
=
"代表岗位、部门或个体用户id"
,
required
=
true
)
private
String
bizId
;
@ApiModelProperty
(
value
=
"代表岗位,部门,个体用户名称"
)
private
String
bizName
;
}
src/main/java/com/syc/slm/slmbi/vo/DeptVo.java
View file @
e691bc53
...
@@ -19,7 +19,11 @@ public class DeptVo {
...
@@ -19,7 +19,11 @@ public class DeptVo {
@ApiModelProperty
(
value
=
"部门id"
)
@ApiModelProperty
(
value
=
"部门id"
)
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"部门名称"
)
@ApiModelProperty
(
value
=
"部门名称"
)
private
String
deptN
ame
;
private
String
n
ame
;
@ApiModelProperty
(
value
=
"部门父级id"
)
@ApiModelProperty
(
value
=
"部门父级id"
)
private
String
parentId
;
private
String
parentNodeId
;
private
String
platformId
;
private
String
appId
;
}
}
src/main/java/com/syc/slm/slmbi/vo/InstrumentPanelConfigVo.java
View file @
e691bc53
...
@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
...
@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
* slm-bi
* slm-bi
* 仪表板样式,数据配置显示类
* 仪表板样式,数据配置显示类
...
@@ -17,7 +18,11 @@ import java.util.Map;
...
@@ -17,7 +18,11 @@ import java.util.Map;
**/
**/
@Data
@Data
@ApiModel
(
value
=
"仪表板样式,数据配置显示类Vo"
,
description
=
"仪表板样式,数据配置显示类Vo"
)
@ApiModel
(
value
=
"仪表板样式,数据配置显示类Vo"
,
description
=
"仪表板样式,数据配置显示类Vo"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
InstrumentPanelConfigVo
extends
InstrumentPanelConfig
{
public
class
InstrumentPanelConfigVo
extends
InstrumentPanelConfig
{
@ApiModelProperty
(
value
=
"自定义权限类型"
,
required
=
true
)
private
List
<
CustomPermissionVo
>
permissions
;
@ApiModelProperty
(
value
=
"仪表板信息"
,
required
=
true
)
private
InstrumentPanelVo
panel
;
}
}
src/main/java/com/syc/slm/slmbi/vo/InstrumentPanelGroupVo.java
View file @
e691bc53
...
@@ -20,11 +20,9 @@ import java.util.List;
...
@@ -20,11 +20,9 @@ import java.util.List;
public
class
InstrumentPanelGroupVo
{
public
class
InstrumentPanelGroupVo
{
@ApiModelProperty
(
value
=
"分组主键"
)
@ApiModelProperty
(
value
=
"分组主键"
)
private
Integer
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"父级id"
)
@ApiModelProperty
(
value
=
"父级id"
)
private
String
parentId
;
private
String
parentId
;
@ApiModelProperty
(
value
=
"分组名称"
)
@ApiModelProperty
(
value
=
"分组名称"
)
private
String
groupName
;
private
String
name
;
@ApiModelProperty
(
value
=
"分组归属下的仪表板"
)
List
<
InstrumentPanelVo
>
instrumentPanels
;
}
}
src/main/java/com/syc/slm/slmbi/vo/InstrumentPanelPermissionVo.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
vo
;
package
com
.
syc
.
slm
.
slmbi
.
vo
;
import
com.syc.slm.slmbi.dto.CustomPermissionDTO
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.util.List
;
/**
/**
* slm-bi
* slm-bi
* 仪表板权限vo
* 仪表板权限vo
...
@@ -16,10 +19,12 @@ import lombok.EqualsAndHashCode;
...
@@ -16,10 +19,12 @@ import lombok.EqualsAndHashCode;
@ApiModel
(
value
=
"仪表板权限Vo"
,
description
=
"仪表板权限Vo"
)
@ApiModel
(
value
=
"仪表板权限Vo"
,
description
=
"仪表板权限Vo"
)
@EqualsAndHashCode
(
callSuper
=
false
)
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
InstrumentPanelPermissionVo
{
public
class
InstrumentPanelPermissionVo
{
@ApiModelProperty
(
value
=
"存储类型,1代表岗位,2代表部门,3 代表个体用户"
)
@ApiModelProperty
(
value
=
"访问权限类型"
,
required
=
true
)
private
Integer
permissionType
;
private
String
accessType
;
@ApiModelProperty
(
value
=
"代表岗位,部门,个体用户id"
)
private
String
bizId
;
@ApiModelProperty
(
value
=
"描述"
,
required
=
true
)
@ApiModelProperty
(
value
=
"代表岗位,部门,个体用户名称"
)
private
String
description
;
private
String
bizName
;
@ApiModelProperty
(
value
=
"自定义权限配置,当访问类型为CUSTOM时必填"
)
private
List
<
CustomPermissionVo
>
customPermissions
;
}
}
src/main/java/com/syc/slm/slmbi/vo/InstrumentPanelVo.java
View file @
e691bc53
...
@@ -17,6 +17,8 @@ import lombok.EqualsAndHashCode;
...
@@ -17,6 +17,8 @@ import lombok.EqualsAndHashCode;
@ApiModel
(
value
=
"仪表板显示类vo"
,
description
=
"仪表板显示类vo"
)
@ApiModel
(
value
=
"仪表板显示类vo"
,
description
=
"仪表板显示类vo"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
InstrumentPanelVo
extends
InstrumentPanel
{
public
class
InstrumentPanelVo
extends
InstrumentPanel
{
@ApiModelProperty
(
value
=
"仪表板下对应的配置"
)
@ApiModelProperty
(
"分组名称"
)
InstrumentPanelConfigVo
instrumentPanelConfig
;
private
String
groupName
;
@ApiModelProperty
(
"是否有待发布版本,有值就有,空就没有"
)
private
String
hasWaitPublish
;
}
}
src/main/java/com/syc/slm/slmbi/vo/PanelTreeNodeType.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
vo
;
/**
* 仪表板树节点类型
*
* @author liangbin
* @date 2021/3/31
*/
public
enum
PanelTreeNodeType
{
// 分组
GROUP
,
// 仪表板
PANEL
;
}
src/main/java/com/syc/slm/slmbi/vo/Panel
Group
Vo.java
→
src/main/java/com/syc/slm/slmbi/vo/Panel
TreeNode
Vo.java
View file @
e691bc53
...
@@ -15,16 +15,16 @@ import lombok.EqualsAndHashCode;
...
@@ -15,16 +15,16 @@ import lombok.EqualsAndHashCode;
@Data
@Data
@ApiModel
(
value
=
"仪表板分组tree vo"
)
@ApiModel
(
value
=
"仪表板分组tree vo"
)
@EqualsAndHashCode
(
callSuper
=
false
)
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
Panel
Group
Vo
{
public
class
Panel
TreeNode
Vo
{
@ApiModelProperty
(
value
=
"分组或者仪表板主键"
)
@ApiModelProperty
(
value
=
"分组或者仪表板主键"
)
private
Integer
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"父级id"
)
@ApiModelProperty
(
value
=
"父级id"
)
private
String
parentId
;
private
String
parentId
;
@ApiModelProperty
(
value
=
"
分组
名称"
)
@ApiModelProperty
(
value
=
"
节点
名称"
)
private
String
groupN
ame
;
private
String
n
ame
;
@ApiModelProperty
(
value
=
"
仪表板名称
"
)
@ApiModelProperty
(
value
=
"
节点类型
"
)
private
String
panelNam
e
;
private
String
nodeTyp
e
;
@ApiModelProperty
(
value
=
"
1 分组,2 仪表板
"
)
@ApiModelProperty
(
value
=
"
组件对应key,分组跟仪表板该字段为空
"
)
private
Integer
type
;
private
String
assemblyKey
;
}
}
src/main/java/com/syc/slm/slmbi/vo/PositionVo.java
View file @
e691bc53
...
@@ -19,5 +19,13 @@ public class PositionVo {
...
@@ -19,5 +19,13 @@ public class PositionVo {
@ApiModelProperty
(
value
=
"职位id"
)
@ApiModelProperty
(
value
=
"职位id"
)
private
String
id
;
private
String
id
;
@ApiModelProperty
(
value
=
"职位名称"
)
@ApiModelProperty
(
value
=
"职位名称"
)
private
String
positionName
;
private
String
name
;
@ApiModelProperty
(
value
=
"角色code"
)
private
String
code
;
@ApiModelProperty
(
value
=
"平台id"
)
private
String
platformId
;
@ApiModelProperty
(
value
=
"租户id"
)
private
String
appId
;
}
}
src/main/java/com/syc/slm/slmbi/vo/UserTreeVo.java
0 → 100644
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
vo
;
import
lombok.Data
;
/**
* data-center
*
* @author : lin
* @date : 2021-04-14 14:53
**/
@Data
public
class
UserTreeVo
{
private
String
id
;
private
String
name
;
private
String
nodeType
;
private
String
parentId
;
}
src/main/java/com/syc/slm/slmbi/vo/VariableDeviceVo.java
View file @
e691bc53
...
@@ -16,8 +16,25 @@ import lombok.EqualsAndHashCode;
...
@@ -16,8 +16,25 @@ import lombok.EqualsAndHashCode;
@ApiModel
(
value
=
"变量所属设备vo"
,
description
=
"变量所属设备vo"
)
@ApiModel
(
value
=
"变量所属设备vo"
,
description
=
"变量所属设备vo"
)
@EqualsAndHashCode
(
callSuper
=
false
)
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
VariableDeviceVo
{
public
class
VariableDeviceVo
{
@ApiModelProperty
(
value
=
"设备Id"
)
private
String
deviceId
;
@ApiModelProperty
(
value
=
"简称"
)
private
String
breviaryName
;
@ApiModelProperty
(
value
=
"质保时间"
)
private
Long
warrantyTime
;
private
String
ancestorName
;
@ApiModelProperty
(
value
=
"设备编号"
)
private
String
code
;
@ApiModelProperty
(
value
=
"质保状态 1保内; 2保外;3未知;"
)
private
String
warrantyStatus
;
@ApiModelProperty
(
value
=
"设备名称"
)
@ApiModelProperty
(
value
=
"设备名称"
)
private
String
deviceName
;
private
String
name
;
private
String
pline
;
@ApiModelProperty
(
value
=
"设备Id"
)
private
String
id
;
@ApiModelProperty
(
value
=
"设备位置"
)
private
String
position
;
@ApiModelProperty
(
value
=
"设备Id"
)
private
String
modelNo
;
}
}
src/main/java/com/syc/slm/slmbi/vo/VariableVo.java
View file @
e691bc53
package
com
.
syc
.
slm
.
slmbi
.
vo
;
package
com
.
syc
.
slm
.
slmbi
.
vo
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -16,22 +17,32 @@ import lombok.EqualsAndHashCode;
...
@@ -16,22 +17,32 @@ import lombok.EqualsAndHashCode;
@ApiModel
(
value
=
"变量vo"
,
description
=
"变量vo"
)
@ApiModel
(
value
=
"变量vo"
,
description
=
"变量vo"
)
@EqualsAndHashCode
(
callSuper
=
false
)
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
VariableVo
{
public
class
VariableVo
{
@ApiModelProperty
(
value
=
"变量来源"
)
@ApiModelProperty
(
value
=
"所属设备id"
)
private
String
sourceName
;
private
String
equipmentId
;
@ApiModelProperty
(
value
=
"变量名称"
)
@ApiModelProperty
(
value
=
"所属设备名称"
)
private
String
variableName
;
private
String
equipmentName
;
@ApiModelProperty
(
value
=
"描述"
)
@ApiModelProperty
(
value
=
"所属设备编号"
)
private
String
description
;
private
String
equipmentCode
;
@ApiModelProperty
(
value
=
"数据类型"
)
private
String
type
;
// @ApiModelProperty(value = "")
private
String
cusVariableType
;
@ApiModelProperty
(
value
=
"单位"
)
@ApiModelProperty
(
value
=
"单位"
)
private
String
unit
;
private
String
unit
;
@ApiModelProperty
(
value
=
"数据类型"
)
private
String
dataType
;
@ApiModelProperty
(
value
=
"变量类型"
)
@ApiModelProperty
(
value
=
"变量类型"
)
private
String
variableType
;
private
Integer
varType
;
@ApiModelProperty
(
value
=
"所属客户"
)
@ApiModelProperty
(
value
=
"变量名称"
)
private
String
customer
;
private
String
name
;
@ApiModelProperty
(
value
=
"所属设备"
)
@ApiModelProperty
(
value
=
"来源"
)
private
String
deviceId
;
private
Integer
from
;
@ApiModelProperty
(
value
=
"设备编号"
)
@ApiModelProperty
(
value
=
"变量id"
)
private
String
deviceCode
;
private
String
id
;
@ApiModelProperty
(
value
=
"所属客户名称"
)
private
String
customerName
;
@ApiModelProperty
(
value
=
"所属客户id"
)
private
String
customerId
;
@ApiModelProperty
(
value
=
"描述"
)
private
String
desc
;
}
}
src/main/resources/application-dev.yml
0 → 100644
View file @
e691bc53
spring
:
datasource
:
username
:
syc_dev
password
:
Test123!
url
:
jdbc:mysql://${MYSQL_HOST:116.63.67.122}:${MYSQL_PORT:3306}/${MYSQL_DB:slm_bi}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true
dc_client
:
host
:
http://apidev.sycdev.com/dc
interfaces
:
positionListUrl
:
/{appId}/positions?positionName={positionName}
deptListUrl
:
/{appId}/departments?deptName={deptName}
userTree
:
/{appId}/users/list?userName={userName}
variableList
:
/{appId}/variables/slm/tag/list?token={token}&from={from}&varType={varType}&type={type}&equipmentId={equipmentId}&customerId={customerId}&name={name}&desc={desc}&unit={unit}&keyword={keyword}&isCustomer={isCustomer}¤t={current}&size={size}
deviceList
:
/{appId}/variables/device?token={token}&equipment_info_id={equipment_info_id}&q_name={q_name}&search_code={search_code}&warranty_status={warranty_status}&page_num={page_num}&page_size={page_size}
deptsRoles
:
/{appId}/users/depts-roles
\ No newline at end of file
src/main/resources/application-local.yml
0 → 100644
View file @
e691bc53
spring
:
datasource
:
username
:
root
password
:
root
url
:
jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DB:slm_bi}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true
dc_client
:
host
:
http://localhost:2400/dc
interfaces
:
positionListUrl
:
/{appId}/positions?positionName={positionName}
deptListUrl
:
/{appId}/departments?deptName={deptName}
userTree
:
/{appId}/users/list?userName={userName}
variableList
:
/{appId}/variables/slm/tag/list?token={token}&from={from}&varType={varType}&type={type}&equipmentId={equipmentId}&customerId={customerId}&name={name}&desc={desc}&unit={unit}&keyword={keyword}&isCustomer={isCustomer}¤t={current}&size={size}
deviceList
:
/{appId}/variables/device?token={token}&equipment_info_id={equipment_info_id}&q_name={q_name}&search_code={search_code}&warranty_status={warranty_status}&page_num={page_num}&page_size={page_size}
deptsRoles
:
/{appId}/users/depts-roles
\ No newline at end of file
src/main/resources/application.yml
View file @
e691bc53
influxdb
:
host
:
139.159.254.185
port
:
8086
username
:
syc
password
:
syc
spring
:
spring
:
application
:
name
:
slm-bi
profiles
:
active
:
-
local
freemarker
:
freemarker
:
cache
:
false
cache
:
false
template-loader-path
:
classpath:/templates/ftl/
template-loader-path
:
classpath:/templates/ftl/
...
@@ -27,9 +26,6 @@ spring:
...
@@ -27,9 +26,6 @@ spring:
pool-name
:
HikariCP
pool-name
:
HikariCP
max-lifetime
:
1800000
max-lifetime
:
1800000
connection-timeout
:
30000
connection-timeout
:
30000
username
:
root
password
:
root
url
:
jdbc:mysql://${MYSQL_HOST:slm-mysql}:${MYSQL_PORT:3306}/${MYSQL_DB:slmx}?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true
messages
:
messages
:
basename
:
i18n/messages,i18n/sys
basename
:
i18n/messages,i18n/sys
...
@@ -48,4 +44,7 @@ mybatis-plus:
...
@@ -48,4 +44,7 @@ mybatis-plus:
server
:
server
:
servlet
:
servlet
:
context-path
:
/bi
context-path
:
/bi
port
:
2022
port
:
2022
\ No newline at end of file
logging
:
level
:
com.syc.slm.slmbi.mapper
:
debug
\ No newline at end of file
src/main/resources/mapper/mysql/panel/InstrumentPanelConfigMapper.xml
0 → 100644
View file @
e691bc53
<?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.syc.slm.slmbi.dao.InstrumentPanelConfigMapper"
>
<resultMap
id=
"instrumentPanelConfigMap"
type=
"com.syc.slm.slmbi.entity.InstrumentPanelConfig"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"panelId"
column=
"panel_id"
/>
<result
property=
"configDetails"
column=
"config_details"
/>
<result
property=
"published"
column=
"published"
/>
<result
property=
"appId"
column=
"app_id"
/>
<result
property=
"creator"
column=
"creator"
/>
<result
property=
"creatorName"
column=
"creator_name"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updater"
column=
"updater"
/>
<result
property=
"updaterName"
column=
"updater_name"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"recordStatus"
column=
"record_status"
/>
<result
property=
"description"
column=
"description"
/>
</resultMap>
</mapper>
src/main/resources/mapper/mysql/panel/InstrumentPanelDraftMapper.xml
0 → 100644
View file @
e691bc53
<?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.syc.slm.slmbi.dao.InstrumentPanelDraftMapper"
>
<resultMap
id=
"instrumentPanelDraftMap"
type=
"com.syc.slm.slmbi.entity.InstrumentPanelDraft"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"groupId"
column=
"group_id"
/>
<result
property=
"accessPermission"
column=
"access_permission"
/>
<result
property=
"published"
column=
"published"
/>
<result
property=
"appId"
column=
"app_id"
/>
<result
property=
"creator"
column=
"creator"
/>
<result
property=
"creatorName"
column=
"creator_name"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updater"
column=
"updater"
/>
<result
property=
"updaterName"
column=
"updater_name"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"recordStatus"
column=
"record_status"
/>
<result
property=
"description"
column=
"description"
/>
</resultMap>
<select
id=
"selectDraftList"
resultType=
"com.syc.slm.slmbi.entity.InstrumentPanelDraft"
>
select * from instrument_panel_draft where panel_id in
<if
test=
"panelIds!=null"
>
(
<foreach
collection=
"panelIds"
item=
"id"
separator=
","
>
#{id}
</foreach>
)
</if>
and access_permission='public' and record_status=1
union ALL
select * from instrument_panel_draft where panel_id in
<if
test=
"panelIds!=null"
>
(
<foreach
collection=
"panelIds"
item=
"id"
separator=
","
>
#{id}
</foreach>
)
</if>
and access_permission='private' and record_status=1 and IFNULL(updater,creator)=#{userId}
union ALL
select * from instrument_panel_draft where panel_id in
<if
test=
"panelIds!=null"
>
(
<foreach
collection=
"panelIds"
item=
"id"
separator=
","
>
#{id}
</foreach>
)
</if>
and access_permission='custom' and record_status=1 and check_panel_permissions(#{appId},id,#{officeIds},#{userId},#{roleId})>0
</select>
</mapper>
src/main/resources/mapper/mysql/panel/InstrumentPanelGroupMapper.xml
0 → 100644
View file @
e691bc53
<?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.syc.slm.slmbi.dao.InstrumentPanelGroupMapper"
>
<resultMap
id=
"instrumentPanelGroupMap"
type=
"com.syc.slm.slmbi.entity.InstrumentPanelGroup"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"parentId"
column=
"parent_id"
/>
<result
property=
"appId"
column=
"app_id"
/>
<result
property=
"creator"
column=
"creator"
/>
<result
property=
"creatorName"
column=
"creator_name"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updater"
column=
"updater"
/>
<result
property=
"updaterName"
column=
"updater_name"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"recordStatus"
column=
"record_status"
/>
<result
property=
"description"
column=
"description"
/>
</resultMap>
<delete
id=
"batchUpdateGroupByIds"
>
update instrument_panel_group set record_status =#{recordStatus}
<if
test=
"groupIds!=null"
>
where id IN (
<foreach
collection=
"groupIds"
item=
"id"
separator=
","
>
#{id}
</foreach>
)
</if>
</delete>
<select
id=
"selectGroupList"
resultType=
"com.syc.slm.slmbi.vo.InstrumentPanelGroupVo"
>
select id,`name`,parent_id from instrument_panel_group
${ew.customSqlSegment}
</select>
<select
id=
"selectGroupByIds"
resultType=
"com.syc.slm.slmbi.vo.PanelTreeNodeVo"
>
select id,`name`,parent_id,'group' node_type from instrument_panel_group
<if
test=
"finalPanelIds!=null"
>
where id IN (
<foreach
collection=
"finalPanelIds"
item=
"id"
separator=
","
>
#{id}
</foreach>
)
</if>
<if
test=
"name!=null"
>
and `name` like '%${name}%'
</if>
</select>
</mapper>
src/main/resources/mapper/mysql/panel/InstrumentPanelMapper.xml
0 → 100644
View file @
e691bc53
<?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.syc.slm.slmbi.dao.InstrumentPanelMapper"
>
<resultMap
id=
"instrumentPanelMap"
type=
"com.syc.slm.slmbi.entity.InstrumentPanel"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"groupId"
column=
"group_id"
/>
<result
property=
"accessPermission"
column=
"access_permission"
/>
<result
property=
"published"
column=
"published"
/>
<result
property=
"appId"
column=
"app_id"
/>
<result
property=
"creator"
column=
"creator"
/>
<result
property=
"creatorName"
column=
"creator_name"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updater"
column=
"updater"
/>
<result
property=
"updaterName"
column=
"updater_name"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"recordStatus"
column=
"record_status"
/>
<result
property=
"description"
column=
"description"
/>
</resultMap>
<update
id=
"batchUpdatePanelByIds"
>
update instrument_panel set record_status =#{recordStatus}
<if
test=
"panelIds!=null"
>
where id IN (
<foreach
collection=
"panelIds"
item=
"id"
separator=
","
>
#{id}
</foreach>
)
</if>
</update>
<select
id=
"selectInstrumentPanelList"
resultType=
"com.syc.slm.slmbi.vo.InstrumentPanelVo"
>
select
p.id,
p.name,
p.group_id,
g.name group_name,
if(p.published='published','已发布','未发布') published,
p.creator_name,
p.updater_name,
p.update_time
from instrument_panel p
join instrument_panel_group g on p.group_id =g.id
${ew.customSqlSegment}
</select>
<select
id=
"selectPanelByIds"
resultType=
"com.syc.slm.slmbi.vo.PanelTreeNodeVo"
>
select
id,
`name`,
group_id parent_id,
'panel' node_type
from instrument_panel
<if
test=
"finalPanelIds!=null"
>
where id IN (
<foreach
collection=
"finalPanelIds"
item=
"id"
separator=
","
>
#{id}
</foreach>
)
</if>
<if
test=
"name!=null"
>
and `name` like '%${name}%'
</if>
</select>
</mapper>
src/main/resources/mapper/mysql/panel/InstrumentPanelPermissionMapper.xml
0 → 100644
View file @
e691bc53
<?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.syc.slm.slmbi.dao.InstrumentPanelPermissionMapper"
>
<resultMap
id=
"instrumentPanelPermissionMap"
type=
"com.syc.slm.slmbi.entity.InstrumentPanelPermission"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"panelId"
column=
"panel_id"
/>
<result
property=
"bizId"
column=
"biz_id"
/>
<result
property=
"bizName"
column=
"biz_name"
/>
<result
property=
"bizType"
column=
"biz_type"
/>
<result
property=
"published"
column=
"published"
/>
<result
property=
"appId"
column=
"app_id"
/>
<result
property=
"creator"
column=
"creator"
/>
<result
property=
"creatorName"
column=
"creator_name"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updater"
column=
"updater"
/>
<result
property=
"updaterName"
column=
"updater_name"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"recordStatus"
column=
"record_status"
/>
<result
property=
"description"
column=
"description"
/>
</resultMap>
</mapper>
src/main/resources/mapper/mysql/panel/InstrumentPanelTreeMapper.xml
0 → 100644
View file @
e691bc53
<?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.syc.slm.slmbi.dao.InstrumentPanelTreeMapper"
>
<resultMap
id=
"instrumentPanelTreeMap"
type=
"com.syc.slm.slmbi.entity.InstrumentPanelTree"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"fullName"
column=
"full_name"
/>
<result
property=
"nodeType"
column=
"node_type"
/>
<result
property=
"appId"
column=
"app_id"
/>
<result
property=
"creator"
column=
"creator"
/>
<result
property=
"creatorName"
column=
"creator_name"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updater"
column=
"updater"
/>
<result
property=
"updaterName"
column=
"updater_name"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"recordStatus"
column=
"record_status"
/>
<result
property=
"description"
column=
"description"
/>
</resultMap>
<update
id=
"batchUpdateTreeByIds"
>
update instrument_panel_tree set record_status =#{recordStatus}
<if
test=
"treeIds!=null"
>
where id IN (
<foreach
collection=
"treeIds"
item=
"id"
separator=
","
>
#{id}
</foreach>
)
</if>
</update>
</mapper>
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