提交 443ef87d 编写于 作者: zhouweidong's avatar zhouweidong

合并分支 'dev' 到 '2020.08.10【669】'

Dev合并到生产

查看合并请求 !21
# **iBiz4j Spring R7 Template ChangeLog**
## [v2020.08.18]
- 实体数据查询支持配置服务插件
- 工作流usertaskid与processkey不区分大小写
- 优化流程处理角色相关配置
- 标记工作流所在应用
## [v2020.08.10]
增强:
- 支持seata分布式事务
......
......@@ -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>
......
......@@ -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) ;
}
......@@ -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>
......
......@@ -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{
......
......@@ -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
......
......@@ -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",systemId);
system.put("pssystemname",systemName);
system.put("sysstructure",JSONObject.parseObject(permissionResult));
system.put("md5check",DigestUtils.md5DigestAsHex(permissionResult.getBytes()));
if(client.syncSysAuthority(system)){
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册