Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz4j Spring R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7后台标准模板
iBiz4j Spring R7
提交
f23471a3
提交
f23471a3
编写于
8月 18, 2020
作者:
zhouweidong
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'dev' 到 'master'
Dev合并到master 查看合并请求
!20
上级
bb36255d
42426640
变更
7
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
119 行增加
和
24 行删除
+119
-24
CHANGELOG.md
CHANGELOG.md
+7
-0
%DE%ServiceImpl.java.ftl
.../core/%MOD_PKGPATH%/service/impl/%DE%ServiceImpl.java.ftl
+24
-8
I%DE%%ITEM%Logic.java.ftl
...ore/%MOD_PKGPATH%/service/logic/I%DE%%ITEM%Logic.java.ftl
+1
-1
%ITEM%.bpmn.ftl
...%PUBPRJ%-core/src/main/resources/workflow/%ITEM%.bpmn.ftl
+54
-13
DTOClient.java.ftl
...rc/main/java/%SYS_PKGPATH%/util/domain/DTOClient.java.ftl
+1
-1
SearchContextBase.java.ftl
...java/%SYS_PKGPATH%/util/filter/SearchContextBase.java.ftl
+27
-0
PermissionSyncJob.java.ftl
...in/java/%SYS_PKGPATH%/util/job/PermissionSyncJob.java.ftl
+5
-1
未找到文件。
CHANGELOG.md
浏览文件 @
f23471a3
# **iBiz4j Spring R7 Template ChangeLog**
## [v2020.08.18]
-
实体数据查询支持配置服务插件
-
工作流usertaskid与processkey不区分大小写
-
优化流程处理角色相关配置
-
标记工作流所在应用
## [v2020.08.10]
增强:
-
支持seata分布式事务
...
...
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/%MOD_PKGPATH%/service/impl/%DE%ServiceImpl.java.ftl
浏览文件 @
f23471a3
...
...
@@ -181,7 +181,7 @@ public class ${item.getCodeName()}ServiceImpl extends ServiceImpl<${de.getCodeNa
<#
list
item
.
getAllPSDEActions
()
as
deaction
>
<#
if
deaction
.
isEnableBackend
()>
<#
if
deaction
.
getRender
()??>
${
deaction
.
getRender
().
code
}
${
deaction
.
getRender
().
code
}
<#
else
>
<#
if
(
deaction
.
getActionType
()==
'USERCUSTOM'
)>
@
Override
...
...
@@ -633,6 +633,9 @@ ${deaction.getRender().code}
<#
comment
>
输出数据查询
</#
comment
>
<#
if
item
.
getAllPSDEDataSets
()??>
<#
list
item
.
getAllPSDEDataSets
()
as
dedataset
>
<#
if
dedataset
.
getRender
()??>
${
dedataset
.
getRender
().
code
}
<#
else
>
/**
*
查询集合
${
dedataset
.
getLogicName
()}
*/
...
...
@@ -651,6 +654,7 @@ ${deaction.getRender().code}
</#
if
>
}
</#
if
>
</#
list
>
</#
if
>
...
...
@@ -937,7 +941,7 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
<#
list
item
.
getAllPSDEActions
()
as
deaction
>
<#
if
deaction
.
isEnableBackend
()>
<#
if
deaction
.
getRender
()??>
${
deaction
.
getRender
().
code
}
${
deaction
.
getRender
().
code
}
<#
else
>
<#
if
(
deaction
.
getActionType
()==
'USERCUSTOM'
)>
@
Override
...
...
@@ -1318,6 +1322,9 @@ ${deaction.getRender().code}
<#
comment
>
输出数据查询
</#
comment
>
<#
if
item
.
getAllPSDEDataSets
()??>
<#
list
item
.
getAllPSDEDataSets
()
as
dedataset
>
<#
if
dedataset
.
getRender
()??>
${
dedataset
.
getRender
().
code
}
<#
else
>
/**
*
查询集合
${
dedataset
.
getLogicName
()}
*/
...
...
@@ -1329,6 +1336,7 @@ ${deaction.getRender().code}
return
new
PageImpl
<${
item
.
getCodeName
()}>(
list
,
context
.
getPageable
(),
total
);
}
</#
if
>
</#
list
>
</#
if
>
...
...
@@ -1404,7 +1412,7 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
<#
list
item
.
getAllPSDEActions
()
as
deaction
>
<#
if
deaction
.
isEnableBackend
()>
<#
if
deaction
.
getRender
()??>
${
deaction
.
getRender
().
code
}
${
deaction
.
getRender
().
code
}
<#
else
>
<#
if
(
deaction
.
getActionType
()==
'USERCUSTOM'
)>
@
Override
...
...
@@ -1843,11 +1851,14 @@ ${deaction.getRender().code}
<#
comment
>
输出数据查询
</#
comment
>
<#
if
item
.
getAllPSDEDataSets
()??>
<#
list
item
.
getAllPSDEDataSets
()
as
dedataset
>
<#
if
dedataset
.
getPSSubSysServiceAPIDEMethod
()??>
<#
assign
sysServiceApiMethod
=
dedataset
.
getPSSubSysServiceAPIDEMethod
().
getCodeName
()?
uncap_first
?
replace
(
"fetch"
,
"search"
)>
<#
if
dedataset
.
getRender
()??>
${
dedataset
.
getRender
().
code
}
<#
else
>
<#
assign
sysServiceApiMethod
=
"search"
+
dedataset
.
getCodeName
()>
</#
if
>
<#
if
dedataset
.
getPSSubSysServiceAPIDEMethod
()??>
<#
assign
sysServiceApiMethod
=
dedataset
.
getPSSubSysServiceAPIDEMethod
().
getCodeName
()?
uncap_first
?
replace
(
"fetch"
,
"search"
)>
<#
else
>
<#
assign
sysServiceApiMethod
=
"search"
+
dedataset
.
getCodeName
()>
</#
if
>
/**
*
查询集合
${
dedataset
.
getLogicName
()}
*/
...
...
@@ -1863,6 +1874,7 @@ ${deaction.getRender().code}
<#--</#
if
>-->
}
</#
if
>
</#
list
>
</#
if
>
...
...
@@ -1920,7 +1932,7 @@ public class ${item.getCodeName()}ServiceImpl implements I${de.getCodeName()}Ser
<#
list
item
.
getAllPSDEActions
()
as
deaction
>
<#
if
deaction
.
isEnableBackend
()>
<#
if
deaction
.
getRender
()??>
${
deaction
.
getRender
().
code
}
${
deaction
.
getRender
().
code
}
<#
else
>
<#
if
(
deaction
.
getActionType
()==
'USERCUSTOM'
)>
@
Override
...
...
@@ -2153,6 +2165,9 @@ ${deaction.getRender().code}
<#
comment
>
输出数据查询
</#
comment
>
<#
if
item
.
getAllPSDEDataSets
()??>
<#
list
item
.
getAllPSDEDataSets
()
as
dedataset
>
<#
if
dedataset
.
getRender
()??>
${
dedataset
.
getRender
().
code
}
<#
else
>
/**
*
查询集合
${
dedataset
.
getLogicName
()}
*/
...
...
@@ -2167,6 +2182,7 @@ ${deaction.getRender().code}
<#--</#
if
>-->
}
</#
if
>
</#
list
>
</#
if
>
...
...
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/%MOD_PKGPATH%/service/logic/I%DE%%ITEM%Logic.java.ftl
浏览文件 @
f23471a3
...
...
@@ -16,6 +16,6 @@ import ${pub.getPKGCodeName()}.core.${de.getPSSystemModule().getCodeName()?lower
*/
public
interface
I
${
de
.
codeName
}${
item
.
codeName
}
Logic
{
void
execute
(${
de
.
codeName
}
${
de
.
codeName
?
lower_case
}
)
;
void
execute
(${
de
.
codeName
}
et
)
;
}
SLN/%PUBPRJ%-core/src/main/resources/workflow/%ITEM%.bpmn.ftl
浏览文件 @
f23471a3
...
...
@@ -11,28 +11,30 @@ TARGET=PSWFVERSION
<extensionElements>
<flowable:eventListener delegateExpression="${r'${processInstanceListener}'}" />
<#if item.getPSWFProcesses?? && item.getPSWFProcesses()??>
<#assign rolesList="">
<#list item.getPSWFProcesses() as WFProcess>
<#if WFProcess.getPSWFProcessRoles?? && WFProcess.getPSWFProcessRoles()??>
<#assign rolesList=""
>
<#
list WFProcess.getPSWFProcessRoles() as processRole
>
<#assign processRoleType=processRole.getWFProcessRoleType()
>
<#if processRoleType=='WFROLE'
>
<#if processRole.getPSWFRole()?? && processRole.getPSWFRole().getCodeName()??
>
<#list WFProcess.getPSWFProcessRoles() as processRole
>
<#
assign processRoleType=processRole.getWFProcessRoleType()
>
<#if processRoleType=='WFROLE'
>
<#if processRole.getPSWFRole()?? && processRole.getPSWFRole().getCodeName()??
>
<#if !P.exists("refgroups",processRole.getPSWFRole().getCodeName())
>
<#if rolesList!=""><#assign rolesList=rolesList+","></#if>
<#assign rolesList=rolesList+processRole.getPSWFRole().getCodeName()+"|"+processRole.getPSWFRole().getName()+"|"+processRole.getPSWFRole().getWFRoleType()>
<#if processRole.getPSWFRole().getWFRoleType()=="DEDATASET">
<#assign rolesList=rolesList+"/"+srfpluralize(processRole.getPSWFRole().getPSDataEntity().getCodeName()?lower_case)+"/fetch"+processRole.getPSWFRole().getPSDEDataSet().getCodeName()?lower_case+"."+processRole.getPSWFRole().getWFUserIdPSDEF().getCodeName()?lower_case>
<#assign rolesList=rolesList+"/"+srfpluralize(processRole.getPSWFRole().getPSDataEntity().getCodeName()?lower_case)+"/fetch"+processRole.getPSWFRole().getPSDEDataSet().getCodeName()?lower_case+"."+processRole.getPSWFRole().getWFUserIdPSDEF().getCodeName()?lower_case>
</#if>
</#if>
</#if>
</#list>
<#if rolesList!="">
<flowable:field name="refgroups">
<flowable:string>${rolesList}</flowable:string>
</flowable:field>
</#if>
</#if>
</#if>
</#list>
</#if>
</#list>
<#if rolesList!="">
<flowable:field name="refgroups">
<flowable:string>${rolesList}</flowable:string>
</flowable:field>
</#if>
</#if>
<#if item.getPSWorkflow()?? && item.getPSWorkflow().getPSWFDEs()??>
<#assign des="">
...
...
@@ -46,6 +48,45 @@ TARGET=PSWFVERSION
</flowable:field>
</#if>
<#list item.getPSWorkflow().getPSWFDEs() as wfde>
<#assign mobApp="">
<#assign pcApp="">
<#if wfde.getPSDataEntity()??>
<#assign refDE=wfde.getPSDataEntity()>
<#if refDE.getAllPSAppDataEntities()??>
<#list refDE.getAllPSAppDataEntities() as refAppDE>
<#assign app=refAppDE.getPSApplication()>
<#if app.isMobileApp()>
<#if !P.exists("mob",app.codeName)>
<#if mobApp=="">
<#assign mobApp=app.codeName>
<#else>
<#assign mobApp=mobApp+","+app.codeName>
</#if>
</#if>
<#else>
<#if !P.exists("pc",app.codeName)>
<#if pcApp=="">
<#assign pcApp=app.codeName>
<#else>
<#assign pcApp=pcApp+","+app.codeName>
</#if>
</#if>
</#if>
</#list>
</#if>
<#if pcApp!="">
<flowable:field name="bookingapps_${srfpluralize(refDE.getCodeName()?lower_case)}">
<flowable:string>${pcApp}</flowable:string>
</flowable:field>
</#if>
<#if mobApp!="">
<flowable:field name="bookingmobs_${srfpluralize(refDE.getCodeName()?lower_case)}">
<flowable:string>${mobApp}</flowable:string>
</flowable:field>
</#if>
</#if>
</#list>
<#list item.getPSWorkflow().getPSWFDEs() as wfde>
<#if wfde.getWFStepPSDEField()??>
<flowable:field name="wfstepfield_${srfpluralize(wfde.getPSDataEntity().getCodeName()?lower_case)}">
<flowable:string>${(wfde.getWFStepPSDEField().getCodeName()?lower_case)}</flowable:string>
...
...
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/domain/DTOClient.java.ftl
浏览文件 @
f23471a3
...
...
@@ -7,9 +7,9 @@ public class DTOClient extends DTOBase {
@
Override
public
void
modify
(
String
field
,
Object
val
)
{
getExtensionparams
().
put
(
"dirtyflagenable"
,
true
);
if
(
val
==
null
){
this
.
getFocusNull
().
add
(
field
.
toLowerCase
());
getExtensionparams
().
put
(
"dirtyflagenable"
,
true
);
getExtensionparams
().
put
(
field
.
toLowerCase
()+
"dirtyflag"
,
true
);
}
else
{
...
...
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/filter/SearchContextBase.java.ftl
浏览文件 @
f23471a3
...
...
@@ -70,6 +70,33 @@ public class SearchContextBase implements ISearchContext{
*
工作流流程标识
*/
public
String
processDefinitionKey
;
/**
*
获取工作流步骤标识
*/
public
String
getUserTaskId
()
{
if
(
StringUtils
.
isEmpty
(
userTaskId
)){
Object
taskId
=
params
.
get
(
"usertaskid"
);
return
StringUtils
.
isEmpty
(
taskId
)?
null
:
String
.
valueOf
(
taskId
);
}
else
{
return
userTaskId
;
}
}
/**
*
获取工作流流程标识
*
@
return
*/
public
String
getProcessDefinitionKey
()
{
if
(
StringUtils
.
isEmpty
(
processDefinitionKey
)){
Object
processKey
=
params
.
get
(
"processdefinitionkey"
);
return
StringUtils
.
isEmpty
(
processKey
)?
null
:
String
.
valueOf
(
processKey
);
}
else
{
return
processDefinitionKey
;
}
}
/**
*
获取分页参数
*
@
return
...
...
SLN/%PUBPRJ%-util/src/main/java/%SYS_PKGPATH%/util/job/PermissionSyncJob.java.ftl
浏览文件 @
f23471a3
...
...
@@ -2,6 +2,7 @@
TARGET
=
PSSYSTEM
</#
ibiztemplate
>
<#
assign
sid
=
sys
.
getName
()/>
<#
assign
sname
=
sys
.
getLogicName
()/>
<#
assign
hasWF
=
false
>
<#
if
sys
.
getAllPSWorkflows
()??>
<#
list
sys
.
getAllPSWorkflows
()
as
wf
>
...
...
@@ -43,6 +44,9 @@ public class PermissionSyncJob implements ApplicationRunner {
@
Value
(
"${r'$'}{ibiz.systemid:${sid}}"
)
private
String
systemId
;
@
Value
(
"${r'$'}{ibiz.systemname:${sname}}"
)
private
String
systemName
;
<#
if
hasWF
>
@
Autowired
...
...
@@ -58,7 +62,7 @@ public class PermissionSyncJob implements ApplicationRunner {
String
permissionResult
=
IOUtils
.
toString
(
permission
,
"UTF-8"
);
JSONObject
system
=
new
JSONObject
();
system
.
put
(
"pssystemid"
,
systemId
);
system
.
put
(
"pssystemname"
,
system
Id
);
system
.
put
(
"pssystemname"
,
system
Name
);
system
.
put
(
"sysstructure"
,
JSONObject
.
parseObject
(
permissionResult
));
system
.
put
(
"md5check"
,
DigestUtils
.
md5DigestAsHex
(
permissionResult
.
getBytes
()));
if
(
client
.
syncSysAuthority
(
system
)){
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录