Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzdst
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzdst
提交
69558065
提交
69558065
编写于
12月 11, 2020
作者:
zhouweidong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dst功能迁移
上级
a9068ea8
变更
15
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
1855 行增加
和
1 行删除
+1855
-1
BaseEntity.java
...in/java/cn/ibizlab/core/extensions/domain/BaseEntity.java
+600
-0
BaseEntityList.java
...ava/cn/ibizlab/core/extensions/domain/BaseEntityList.java
+140
-0
BaseField.java
...ain/java/cn/ibizlab/core/extensions/domain/BaseField.java
+207
-0
BaseFieldList.java
...java/cn/ibizlab/core/extensions/domain/BaseFieldList.java
+245
-0
DSTEntityModel.java
...ava/cn/ibizlab/core/extensions/domain/DSTEntityModel.java
+23
-0
DSTLookupModel.java
...ava/cn/ibizlab/core/extensions/domain/DSTLookupModel.java
+15
-0
IEntity.java
.../main/java/cn/ibizlab/core/extensions/domain/IEntity.java
+42
-0
IField.java
...c/main/java/cn/ibizlab/core/extensions/domain/IField.java
+35
-0
BaseEntityService.java
...cn/ibizlab/core/extensions/service/BaseEntityService.java
+20
-0
DAMetricExService.java
...cn/ibizlab/core/extensions/service/DAMetricExService.java
+34
-0
RuleItemExService.java
...cn/ibizlab/core/extensions/service/RuleItemExService.java
+358
-1
FreeMakerHelper.java
...java/cn/ibizlab/core/extensions/util/FreeMakerHelper.java
+47
-0
IEntityActionHelper.java
.../cn/ibizlab/core/extensions/util/IEntityActionHelper.java
+13
-0
DSTRule.drl.ftl
ibzdst-core/src/main/resources/ftl/DSTRule.drl.ftl
+24
-0
RuleUtils.java
...-util/src/main/java/cn/ibizlab/util/helper/RuleUtils.java
+52
-0
未找到文件。
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/domain/BaseEntity.java
0 → 100644
浏览文件 @
69558065
此差异已折叠。
点击以展开。
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/domain/BaseEntityList.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
domain
;
import
cn.ibizlab.core.extensions.util.IEntityActionHelper
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
org.springframework.util.StringUtils
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
import
java.util.ArrayList
;
import
java.util.List
;
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@Data
public
class
BaseEntityList
extends
ArrayList
<
BaseEntity
>
implements
IEntity
{
public
String
KEY
;
public
String
ENTITYNAME
;
private
BaseField
nullFiled
=
new
BaseField
();
private
BaseEntity
root
;
public
void
regesitAttr
(
String
key
,
BaseEntity
val
)
{
if
(
key
.
equalsIgnoreCase
(
"root"
)&&
root
==
null
)
root
=
val
;
}
@Override
public
IEntity
$E
(
String
key
)
{
return
new
BaseEntity
();
}
@Override
public
Object
get
(
Object
key
)
{
if
(
key
instanceof
Integer
)
return
super
.
get
((
int
)
key
);
BaseFieldList
list
=
new
BaseFieldList
();
for
(
BaseEntity
item:
this
)
{
Object
val
=
item
.
get
(
key
);
if
(
val
instanceof
BaseField
)
list
.
add
((
BaseField
)
val
);
}
if
(
list
.
size
()==
1
)
return
list
.
get
(
0
);
else
if
(
list
.
size
()==
0
)
return
nullFiled
;
else
return
list
;
}
@Override
public
IField
$
(
String
key
)
{
if
(
StringUtils
.
isEmpty
(
key
))
return
nullFiled
;
Object
obj
=
this
.
get
(
key
);
if
(
obj
instanceof
IField
)
{
IField
f
=
(
IField
)
obj
;
if
(
f
.
getValue
()!=
null
&&
key
.
indexOf
(
"."
)>
0
)
{
String
[]
arr
=
key
.
split
(
"[.]"
);
if
(
arr
.
length
>=
2
)
{
if
((!
StringUtils
.
isEmpty
(
arr
[
0
]))&&(!
StringUtils
.
isEmpty
(
arr
[
1
])))
{
f
.
setEntity
(
arr
[
0
]);
f
.
setField
(
arr
[
1
]);
}
}
}
return
f
;
}
else
return
nullFiled
;
}
@Override
public
Double
$D
(
String
key
)
{
IField
field
=
this
.
$
(
key
);
Object
val
=
field
.
getValue
();
if
(
field
instanceof
BaseFieldList
)
val
=((
BaseFieldList
)
field
).
get
(
0
);
if
(
val
==
null
)
return
0
d
;
else
if
((
val
instanceof
Integer
)||(
val
instanceof
Double
)||(
val
instanceof
Long
)||(
val
instanceof
BigDecimal
)||(
val
instanceof
BigInteger
)||(
val
instanceof
Float
))
return
(
double
)
val
;
return
1
d
;
}
@Override
public
boolean
IF
(
String
cond
)
{
return
test
(
cond
);
}
@Override
public
boolean
test
(
String
cond
)
{
{
for
(
BaseEntity
obj:
this
)
{
obj
.
setENTITYNAME
(
this
.
ENTITYNAME
);
if
(
obj
.
test
(
cond
))
return
true
;
}
return
false
;
}
}
private
IEntityActionHelper
iEntityActionHelper
=
null
;
@Override
public
void
setActionHelper
(
IEntityActionHelper
iEntityActionHelper
)
{
this
.
iEntityActionHelper
=
iEntityActionHelper
;
}
@Override
public
IEntityActionHelper
getActionHelper
()
{
if
(
this
.
iEntityActionHelper
==
null
)
{
return
null
;
}
return
this
.
iEntityActionHelper
;
}
@Override
public
List
<
BaseEntity
>
selectRow
(
String
dblink
,
String
sql
)
{
return
(
BaseEntityList
)
this
.
getActionHelper
().
select
(
dblink
,
sql
);
}
}
\ No newline at end of file
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/domain/BaseField.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
domain
;
import
cn.ibizlab.util.helper.RuleUtils
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
org.springframework.util.ObjectUtils
;
import
java.io.BufferedReader
;
import
java.io.Reader
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@Data
public
class
BaseField
implements
IField
{
private
String
field
;
private
String
entity
;
private
Object
value
=
null
;
public
void
setValue
(
Object
value
)
{
if
(
value
instanceof
java
.
sql
.
Clob
)
{
// Clob类型 转String
BufferedReader
br
=
null
;
Reader
is
=
null
;
try
{
String
reString
=
""
;
is
=
((
java
.
sql
.
Clob
)
value
).
getCharacterStream
();
br
=
new
BufferedReader
(
is
);
String
s
=
br
.
readLine
();
StringBuffer
sb
=
new
StringBuffer
();
while
(
s
!=
null
)
{
sb
.
append
(
s
);
s
=
br
.
readLine
();
}
reString
=
sb
.
toString
();
this
.
value
=
reString
;
}
catch
(
Exception
ex
)
{
}
finally
{
try
{
if
(
br
!=
null
){
br
.
close
();
}
}
catch
(
Exception
ex
)
{}
try
{
if
(
is
!=
null
){
is
.
close
();
}
}
catch
(
Exception
ex
)
{}
}
}
else
this
.
value
=
value
;
}
public
Object
getValue
()
{
return
this
.
value
;
}
@Override
public
String
getCondValue
()
{
Object
val
=
getValue
();
if
(
ObjectUtils
.
isEmpty
(
val
))
return
"null"
;
String
str
=
""
;
if
((
val
instanceof
Integer
)||(
val
instanceof
Double
)||(
val
instanceof
Long
)||(
val
instanceof
BigDecimal
)||(
val
instanceof
BigInteger
)||(
val
instanceof
Float
))
str
=
val
.
toString
();
else
str
=
"'"
+
val
.
toString
()+
"'"
;
return
str
;
}
@Override
public
Object
getFecthValue
()
{
return
getValue
();
}
public
static
BaseField
from
(
Object
value
)
{
BaseField
field
=
new
BaseField
();
field
.
setValue
(
value
);
return
field
;
}
@Override
public
boolean
EQ
(
Object
val
)
{
return
RuleUtils
.
equal
(
val
,
this
.
value
);
}
@Override
public
boolean
NOTEQ
(
Object
val
)
{
return
!
RuleUtils
.
equal
(
val
,
this
.
value
);
}
@Override
public
boolean
GTANDEQ
(
Object
val
)
{
return
RuleUtils
.
ge
(
val
,
this
.
value
);
}
@Override
public
boolean
GT
(
Object
val
)
{
return
RuleUtils
.
gt
(
val
,
this
.
value
);
}
@Override
public
boolean
LTANDEQ
(
Object
val
)
{
return
RuleUtils
.
le
(
val
,
this
.
value
);
}
@Override
public
boolean
LT
(
Object
val
)
{
return
RuleUtils
.
lt
(
val
,
this
.
value
);
}
@Override
public
boolean
ISNULL
(
Object
val
)
{
return
RuleUtils
.
isNull
(
this
.
value
);
}
@Override
public
boolean
ISNOTNULL
(
Object
val
)
{
return
RuleUtils
.
isNotNull
(
this
.
value
);
}
@Override
public
boolean
LIKE
(
String
val
)
{
return
RuleUtils
.
matchor
(
val
,
this
.
value
);
}
@Override
public
boolean
LEFTLIKE
(
String
val
)
{
return
RuleUtils
.
leftmatchor
(
val
,
this
.
value
);
}
@Override
public
boolean
RIGHTLIKE
(
String
val
)
{
return
RuleUtils
.
rightmatchor
(
val
,
this
.
value
);
}
@Override
public
boolean
IN
(
String
val
)
{
return
RuleUtils
.
in
(
val
,
this
.
value
);
}
@Override
public
boolean
NOTIN
(
String
val
)
{
return
RuleUtils
.
notin
(
val
,
this
.
value
);
}
@Override
public
boolean
INC2S
(
String
val
)
{
return
RuleUtils
.
inc2s
(
val
,
this
.
value
);
}
@Override
public
boolean
NOTINC2S
(
String
val
)
{
return
RuleUtils
.
notinc2s
(
val
,
this
.
value
);
}
@Override
public
boolean
MATCHES
(
String
val
)
{
return
RuleUtils
.
matchand
(
val
,
this
.
value
);
}
@Override
public
String
toString
()
{
if
(
ObjectUtils
.
isEmpty
(
this
.
getValue
()))
return
""
;
else
return
this
.
getValue
().
toString
();
}
@Override
public
boolean
NOTLIKE
(
String
val
)
{
return
!
LIKE
(
val
);
}
@Override
public
boolean
LEFTNOTLIKE
(
String
val
)
{
return
!
LEFTLIKE
(
val
);
}
@Override
public
boolean
RIGHTNOTLIKE
(
String
val
)
{
return
!
RIGHTLIKE
(
val
);
}
@Override
public
boolean
NOTMATCHES
(
String
val
)
{
return
!
MATCHES
(
val
);
}
}
\ No newline at end of file
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/domain/BaseFieldList.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
domain
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
lombok.Data
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StringUtils
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
import
java.util.ArrayList
;
import
java.util.Hashtable
;
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@Data
public
class
BaseFieldList
extends
ArrayList
<
BaseField
>
implements
IField
{
private
String
field
;
private
String
entity
;
public
Object
getValue
()
{
String
rt
=
""
;
Hashtable
<
Object
,
Integer
>
setcheck
=
new
Hashtable
<
Object
,
Integer
>();
if
(
this
.
size
()==
0
)
return
null
;
if
(
this
.
size
()==
1
)
return
this
.
get
(
0
).
getValue
();
Object
sObj
=
null
;
for
(
BaseField
obj:
this
)
{
Object
val
=
obj
.
getValue
();
if
(
ObjectUtils
.
isEmpty
(
val
))
continue
;
if
(
setcheck
.
containsKey
(
val
))
continue
;
else
setcheck
.
put
(
val
,
1
);
String
str
=
val
.
toString
();
sObj
=
val
;
if
(!
StringUtils
.
isEmpty
(
rt
))
rt
=
rt
+
","
;
rt
=
rt
+
str
;
}
if
(
StringUtils
.
isEmpty
(
rt
))
rt
=
null
;
if
(
setcheck
.
size
()==
1
)
return
sObj
;
return
rt
;
}
@Override
public
String
getCondValue
()
{
String
rt
=
""
;
Hashtable
<
Object
,
Integer
>
setcheck
=
new
Hashtable
<
Object
,
Integer
>();
for
(
BaseField
obj:
this
)
{
Object
val
=
obj
.
getValue
();
if
(
ObjectUtils
.
isEmpty
(
val
))
continue
;
if
(
setcheck
.
containsKey
(
val
))
continue
;
else
setcheck
.
put
(
val
,
1
);
String
str
=
""
;
if
((
val
instanceof
Integer
)||(
val
instanceof
Double
)||(
val
instanceof
Long
)||(
val
instanceof
BigDecimal
)||(
val
instanceof
BigInteger
)||(
val
instanceof
Float
))
str
=
val
.
toString
();
else
str
=
"'"
+
val
.
toString
()+
"'"
;
if
(!
StringUtils
.
isEmpty
(
rt
))
rt
=
rt
+
","
;
rt
=
rt
+
str
;
}
if
(
StringUtils
.
isEmpty
(
rt
))
rt
=
"null"
;
return
rt
;
}
@Override
public
Object
getFecthValue
()
{
return
null
;
}
@Override
public
boolean
EQ
(
Object
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
EQ
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
NOTEQ
(
Object
val
)
{
return
!
EQ
(
val
);
}
@Override
public
boolean
GTANDEQ
(
Object
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
GTANDEQ
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
GT
(
Object
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
GT
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
LTANDEQ
(
Object
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
LTANDEQ
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
LT
(
Object
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
LT
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
ISNULL
(
Object
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
ISNULL
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
ISNOTNULL
(
Object
val
)
{
return
!
ISNULL
(
val
);
}
@Override
public
boolean
LIKE
(
String
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
LIKE
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
LEFTLIKE
(
String
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
LEFTLIKE
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
RIGHTLIKE
(
String
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
RIGHTLIKE
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
IN
(
String
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
IN
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
NOTIN
(
String
val
)
{
return
!
IN
(
val
);
}
@Override
public
boolean
INC2S
(
String
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
INC2S
(
val
))
return
true
;
return
false
;
}
@Override
public
boolean
NOTINC2S
(
String
val
)
{
return
!
INC2S
(
val
);
}
@Override
public
boolean
MATCHES
(
String
val
)
{
for
(
BaseField
obj:
this
)
if
(
obj
.
MATCHES
(
val
))
return
true
;
return
false
;
}
@Override
public
String
toString
()
{
if
(
ObjectUtils
.
isEmpty
(
this
.
getValue
()))
return
""
;
else
{
String
rt
=
""
;
for
(
BaseField
obj:
this
)
{
Object
val
=
obj
.
getValue
();
if
(
ObjectUtils
.
isEmpty
(
val
))
continue
;
String
str
=
val
.
toString
();
if
(!
StringUtils
.
isEmpty
(
rt
))
rt
=
rt
+
","
;
rt
=
rt
+
str
;
}
if
(
StringUtils
.
isEmpty
(
rt
))
rt
=
""
;
return
rt
;
}
}
@Override
public
boolean
NOTLIKE
(
String
val
)
{
return
!
LIKE
(
val
);
}
@Override
public
boolean
LEFTNOTLIKE
(
String
val
)
{
return
!
LEFTLIKE
(
val
);
}
@Override
public
boolean
RIGHTNOTLIKE
(
String
val
)
{
return
!
RIGHTLIKE
(
val
);
}
@Override
public
boolean
NOTMATCHES
(
String
val
)
{
return
!
MATCHES
(
val
);
}
}
\ No newline at end of file
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/domain/DSTEntityModel.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
domain
;
import
cn.ibizlab.core.lite.domain.MetaField
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.Map
;
@Data
public
class
DSTEntityModel
implements
Serializable
{
private
String
dblink
;
private
String
sqltable
;
private
String
sqlKeyField
;
private
String
getCondition
;
private
Map
<
String
,
DSTLookupModel
>
lookups
;
private
List
<
String
>
releations
;
private
List
<
String
>
subentity
;
private
List
<
MetaField
>
keyFields
;
private
List
<
MetaField
>
f1nFields
;
private
List
<
MetaField
>
fn1Fields
;
private
String
lastUpdateField
;
}
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/domain/DSTLookupModel.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
domain
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
@Data
public
class
DSTLookupModel
implements
Serializable
{
private
String
refentity
;
private
String
selectCondition
;
private
List
<
String
>
reffieldsCondition
;
private
String
entity
;
private
List
<
String
>
paramsCondition
;
}
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/domain/IEntity.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
domain
;
import
cn.ibizlab.core.extensions.util.IEntityActionHelper
;
import
java.io.Serializable
;
import
java.util.List
;
public
interface
IEntity
extends
Serializable
{
Object
get
(
Object
key
);
String
getENTITYNAME
();
void
setENTITYNAME
(
String
name
);
void
regesitAttr
(
String
key
,
BaseEntity
val
);
String
getKEY
();
void
setKEY
(
String
KEY
);
IField
$
(
String
key
);
Double
$D
(
String
key
);
IEntity
$E
(
String
key
);
boolean
IF
(
String
cond
);
boolean
test
(
String
cond
);
void
setActionHelper
(
IEntityActionHelper
iEntityActionHelper
);
/**
* 获取操作辅助对象
*
* @return
*/
IEntityActionHelper
getActionHelper
();
List
<
BaseEntity
>
selectRow
(
String
dblink
,
String
sql
);
}
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/domain/IField.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
domain
;
import
java.io.Serializable
;
public
interface
IField
extends
Serializable
{
String
getField
();
void
setField
(
String
field
);
String
getEntity
();
void
setEntity
(
String
entity
);
Object
getValue
();
String
getCondValue
();
Object
getFecthValue
();
boolean
EQ
(
Object
val
);
boolean
NOTEQ
(
Object
val
);
boolean
GTANDEQ
(
Object
val
);
boolean
GT
(
Object
val
);
boolean
LTANDEQ
(
Object
val
);
boolean
LT
(
Object
val
);
boolean
ISNULL
(
Object
val
);
boolean
ISNOTNULL
(
Object
val
);
boolean
LIKE
(
String
val
);
boolean
LEFTLIKE
(
String
val
);
boolean
RIGHTLIKE
(
String
val
);
boolean
NOTLIKE
(
String
val
);
boolean
LEFTNOTLIKE
(
String
val
);
boolean
RIGHTNOTLIKE
(
String
val
);
boolean
IN
(
String
val
);
boolean
NOTIN
(
String
val
);
boolean
INC2S
(
String
val
);
boolean
NOTINC2S
(
String
val
);
boolean
MATCHES
(
String
val
);
boolean
NOTMATCHES
(
String
val
);
}
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/service/BaseEntityService.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
service
;
import
cn.ibizlab.core.extensions.domain.BaseEntity
;
import
cn.ibizlab.core.extensions.domain.IEntity
;
import
cn.ibizlab.core.extensions.domain.IField
;
import
cn.ibizlab.core.rule.domain.ExecLog
;
import
cn.ibizlab.util.errors.BadRequestAlertException
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.List
;
/**
* 实体[DSTEntity] 服务对象接口
*/
public
interface
BaseEntityService
extends
IService
<
BaseEntity
>
{
void
resetKC
(
String
keyC
);
List
<
BaseEntity
>
selectRow
(
String
dblink
,
String
sql
);
ExecLog
processAll
(
BadRequestAlertException
msg
);
void
saveResult
(
IEntity
param
,
String
RULEID
,
String
RULENAME
,
String
RU_EXECRESULTNAME
,
String
BUSINESSCAT
,
Integer
RETVALUE
,
Object
KEYVALUEFIELD
,
IField
DOMAINSFIELD
,
IField
METRICFIELD
,
IField
TIMEFIELD
,
IField
EXT1FIELD
,
IField
EXT2FIELD
);
}
\ No newline at end of file
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/service/DAMetricExService.java
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
service
;
package
cn
.
ibizlab
.
core
.
extensions
.
service
;
import
cn.ibizlab.core.analysis.service.impl.DAMetricServiceImpl
;
import
cn.ibizlab.core.analysis.service.impl.DAMetricServiceImpl
;
import
cn.ibizlab.core.rule.domain.RuleItem
;
import
cn.ibizlab.core.rule.service.IRuleItemService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
cn.ibizlab.core.analysis.domain.DAMetric
;
import
cn.ibizlab.core.analysis.domain.DAMetric
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.context.annotation.Primary
;
...
@@ -16,6 +20,25 @@ import java.util.*;
...
@@ -16,6 +20,25 @@ import java.util.*;
@Service
(
"DAMetricExService"
)
@Service
(
"DAMetricExService"
)
public
class
DAMetricExService
extends
DAMetricServiceImpl
{
public
class
DAMetricExService
extends
DAMetricServiceImpl
{
@Autowired
@Lazy
IRuleItemService
ruleService
;
@Override
public
boolean
create
(
DAMetric
et
)
{
super
.
create
(
et
);
syncRule
(
et
);
return
true
;
}
@Override
public
boolean
update
(
DAMetric
et
)
{
super
.
update
(
et
);
syncRule
(
et
);
return
true
;
}
@Override
@Override
protected
Class
currentModelClass
()
{
protected
Class
currentModelClass
()
{
return
com
.
baomidou
.
mybatisplus
.
core
.
toolkit
.
ReflectionKit
.
getSuperClassGenericType
(
this
.
getClass
().
getSuperclass
(),
1
);
return
com
.
baomidou
.
mybatisplus
.
core
.
toolkit
.
ReflectionKit
.
getSuperClassGenericType
(
this
.
getClass
().
getSuperclass
(),
1
);
...
@@ -29,6 +52,17 @@ public class DAMetricExService extends DAMetricServiceImpl {
...
@@ -29,6 +52,17 @@ public class DAMetricExService extends DAMetricServiceImpl {
@Override
@Override
@Transactional
@Transactional
public
DAMetric
syncRule
(
DAMetric
et
)
{
public
DAMetric
syncRule
(
DAMetric
et
)
{
RuleItem
rule
=
new
RuleItem
();
rule
.
setRuleCode
(
et
.
getMetricId
());
rule
.
setRuleName
(
et
.
getMetricName
());
rule
.
setModelId
(
et
.
getModelId
());
rule
.
setModelName
(
et
.
getModelName
());
rule
.
setCfg
(
et
.
getCfg
());
rule
.
setFieldSet
(
et
.
getFieldSet
());
rule
.
setGroup
(
"REP"
);
rule
.
setBusinessCat
(
et
.
getMetricType
());
rule
.
setMemo
(
et
.
getModelName
()+
"."
+
et
.
getMetricName
());
ruleService
.
save
(
rule
);
return
super
.
syncRule
(
et
);
return
super
.
syncRule
(
et
);
}
}
}
}
...
...
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/service/RuleItemExService.java
浏览文件 @
69558065
此差异已折叠。
点击以展开。
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/util/FreeMakerHelper.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
util
;
import
freemarker.cache.ClassTemplateLoader
;
import
freemarker.cache.TemplateLoader
;
import
freemarker.template.Configuration
;
import
freemarker.template.Template
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
java.io.File
;
import
java.io.FileWriter
;
import
java.io.Writer
;
import
java.util.Map
;
public
class
FreeMakerHelper
{
private
static
Log
log
=
LogFactory
.
getLog
(
FreeMakerHelper
.
class
);
/**
* 根据ftl生成目标文件
* @param basePackagePath ftl文件目录(classpath相对路径)
* @param templateFileName ftl文件名
* @param param ftl文件所需参数
* @param outputFilePath 目标文件输出路径
* @throws Exception
*/
public
static
void
outputFreeMaker
(
String
basePackagePath
,
String
templateFileName
,
Map
param
,
File
outputFilePath
)
throws
Exception
{
log
.
info
(
"------freemaker正在进行文件输出任务------"
);
// 第一步:创建一个Configuration对象,直接new一个对象。构造方法的参数就是freemarker对于的版本号。
Configuration
configuration
=
new
Configuration
(
Configuration
.
getVersion
());
// 第二步:设置模板文件所在的路径
TemplateLoader
templateLoader
=
new
ClassTemplateLoader
(
FreeMakerHelper
.
class
,
basePackagePath
);
configuration
.
setTemplateLoader
(
templateLoader
);
// 第三步:设置模板文件使用的字符集。一般就是utf-8.
configuration
.
setDefaultEncoding
(
"utf-8"
);
// 第四步:加载一个模板,创建一个模板对象。
Template
template
=
configuration
.
getTemplate
(
templateFileName
);
// 第五步:创建一个模板使用的数据集,可以是pojo也可以是map。一般是Map。
// 第六步:创建一个Writer对象,一般创建一FileWriter对象,指定生成的文件名。
Writer
out
=
new
FileWriter
(
outputFilePath
);
// 第七步:调用模板对象的process方法输出文件。
template
.
process
(
param
,
out
);
// 第八步:关闭流。
out
.
close
();
log
.
info
(
"------freemaker已完成文件输出任务------"
);
}
}
ibzdst-core/src/main/java/cn/ibizlab/core/extensions/util/IEntityActionHelper.java
0 → 100644
浏览文件 @
69558065
package
cn
.
ibizlab
.
core
.
extensions
.
util
;
import
cn.ibizlab.core.extensions.domain.BaseEntity
;
import
cn.ibizlab.core.extensions.domain.DSTEntityModel
;
import
java.util.List
;
public
interface
IEntityActionHelper
{
List
<
BaseEntity
>
select
(
String
dblink
,
String
sql
);
DSTEntityModel
getModel
(
String
etname
);
}
ibzdst-core/src/main/resources/ftl/DSTRule.drl.ftl
0 → 100644
浏览文件 @
69558065
package
com
.
engineer
;
import
net
.
ibizsys
.
dst
.
common
.
domain
.
BaseEntity
;
import
net
.
ibizsys
.
dst
.
common
.
domain
.
IEntity
;
import
net
.
ibizsys
.
dst
.
common
.
service
.
BaseEntityService
;
global
BaseEntityService
BaseService
;
rule
"<#if ruleid??>${ruleid}_1</#if>"
salience
100
activation
-
group
"<#if ruleid??>${ruleid}</#if>"
when
item
:
BaseEntity
(
<#
if
rulecond
??>${
rulecond
}</#
if
>
)
<#
if
(
releationcond
??)>${
releationcond
}</#
if
>
then
BaseService
.
saveResult
(
item
,
"<#if ruleid??>${ruleid}</#if>"
,
"<#if rulename??>${rulename}</#if>"
,
"<#if memo??>${memo}</#if>"
,
"<#if businesscat??>${businesscat}</#if>"
,
1
,${
keyvaluefield
},${
domainsfield
},${
metricfield
},${
timefield
},${
ext1field
},${
ext2field
});
end
rule
"<#if ruleid??>${ruleid}_d</#if>"
salience
0
activation
-
group
"<#if ruleid??>${ruleid}</#if>"
when
item
:
BaseEntity
(
)
<#
if
(
releationcond
??)>${
releationcond
}</#
if
>
then
BaseService
.
saveResult
(
item
,
"<#if ruleid??>${ruleid}</#if>"
,
"<#if rulename??>${rulename}</#if>"
,
null
,
"<#if businesscat??>${businesscat}</#if>"
,
0
,
item
.
KEY
,${
domainsfield
},${
metricfield
},${
timefield
},
null
,
null
);
end
\ No newline at end of file
ibzdst-util/src/main/java/cn/ibizlab/util/helper/RuleUtils.java
浏览文件 @
69558065
...
@@ -580,4 +580,56 @@ public class RuleUtils
...
@@ -580,4 +580,56 @@ public class RuleUtils
}
}
return
acts
;
return
acts
;
}
}
public
static
boolean
inc2s
(
String
tvs
,
Object
finalObject
)
{
if
(
ObjectUtils
.
isEmpty
(
finalObject
))
return
false
;
if
(
StringUtils
.
isEmpty
(
tvs
))
return
false
;
if
(
finalObject
instanceof
String
)
{
tvs
=
"s:"
+
tvs
;
}
else
return
false
;
List
acts
=
parseTvs
(
tvs
);
for
(
Iterator
localIterator
=
acts
.
iterator
();
localIterator
.
hasNext
();)
{
Object
act
=
localIterator
.
next
();
if
(
equal
(
c2s
(
act
.
toString
()),
c2s
(
finalObject
.
toString
())))
return
true
;
}
return
false
;
}
public
static
String
c2s
(
String
str
)
{
if
(
str
==
null
)
return
null
;
if
(
str
.
length
()<
300
)
{
str
=
str
.
trim
();
//1234567890()【】〔2018〕
str
=
str
.
replace
(
"1"
,
"1"
).
replace
(
"2"
,
"2"
).
replace
(
"3"
,
"3"
).
replace
(
"4"
,
"4"
).
replace
(
"5"
,
"5"
).
replace
(
"6"
,
"6"
).
replace
(
"7"
,
"7"
)
.
replace
(
"8"
,
"8"
).
replace
(
"9"
,
"9"
).
replace
(
"0"
,
"0"
)
.
replace
(
"("
,
"〔"
).
replace
(
")"
,
"〕"
)
.
replace
(
"("
,
"〔"
).
replace
(
")"
,
"〕"
)
.
replace
(
"【"
,
"〔"
).
replace
(
"】"
,
"〕"
)
.
replace
(
"["
,
"〔"
).
replace
(
"]"
,
"〕"
);
}
return
str
;
}
public
static
boolean
notinc2s
(
String
tvs
,
Object
finalObject
)
{
return
(!
inc2s
(
tvs
,
finalObject
));
}
}
}
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录