提交 4630e5ab 编写于 作者: sq3536's avatar sq3536

rule规则

上级 6344f417
...@@ -19,6 +19,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -19,6 +19,7 @@ import com.alibaba.fastjson.JSONObject;
global ${pub.getPKGCodeName()}.core.${ParamPSDataEntity.getPSSystemModule().codeName?lower_case}.domain.${ParamPSDataEntity.codeName} ${logicName+logicParam.codeName?lower_case}; global ${pub.getPKGCodeName()}.core.${ParamPSDataEntity.getPSSystemModule().codeName?lower_case}.domain.${ParamPSDataEntity.codeName} ${logicName+logicParam.codeName?lower_case};
<#else> <#else>
global java.util.Map ${logicName+logicParam.codeName?lower_case}; global java.util.Map ${logicName+logicParam.codeName?lower_case};
global ${pub.getPKGCodeName()}.util.security.AuthenticationUser curuser;
</#if> </#if>
</#list> </#list>
</#if> </#if>
...@@ -50,26 +51,32 @@ ruleflow-group "${logicName+deLogicNode.getCodeName()?lower_case}" ...@@ -50,26 +51,32 @@ ruleflow-group "${logicName+deLogicNode.getCodeName()?lower_case}"
<#list deLogicNode.getPSDELogicNodeParams() as nodeParam> <#list deLogicNode.getPSDELogicNodeParams() as nodeParam>
<#assign targetLogicParam=nodeParam.getDstPSDELogicParam()> <#assign targetLogicParam=nodeParam.getDstPSDELogicParam()>
<#assign targetLogicFieldName=nodeParam.getDstFieldName()> <#assign targetLogicFieldName=nodeParam.getDstFieldName()>
<#if targetLogicParam.getParamPSDataEntity().getPSDEField(targetLogicFieldName)??> <#if targetLogicParam.getParamPSDataEntity().getPSDEField(targetLogicFieldName,true)??>
<#assign targetDEField=((targetLogicParam.getParamPSDataEntity().getPSDEField(targetLogicFieldName))!'')> <#assign targetLogicFieldName=srfcaseformat(targetLogicParam.getParamPSDataEntity().getPSDEField(targetLogicFieldName,true).getCodeName(),'l_u2lC')>
</#if> </#if>
<#if nodeParam.getSrcValueType()=='SRCVALUE'><#comment>直接值</#comment> <#if nodeParam.getSrcValueType()=='SRCVALUE'><#comment>直接值</#comment>
<#if targetDEField??&&srfjavatype(targetDEField.stdDataType)=='Integer'>
${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}",${nodeParam.getSrcValue()});
<#else>
${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}","${nodeParam.getSrcValue()}"); ${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}","${nodeParam.getSrcValue()}");
</#if>
<#elseif nodeParam.getSrcValueType()=='SRCDLPARAM' ><#comment>源逻辑参数</#comment> <#elseif nodeParam.getSrcValueType()=='SRCDLPARAM' ><#comment>源逻辑参数</#comment>
<#assign srcPSDELogicParam=nodeParam.getSrcPSDELogicParam()> <#assign srcPSDELogicParam=nodeParam.getSrcPSDELogicParam()>
<#assign srcFieldName=nodeParam.getSrcFieldName()> <#assign srcFieldName=nodeParam.getSrcFieldName()>
<#--<#assign srcDEField=((srcPSDELogicParam.getParamPSDataEntity().getPSDEField(srcFieldName))!'') >--> <#if srcPSDELogicParam.getParamPSDataEntity().getPSDEField(srcFieldName,true)??>
<#--<#if srcDEField!='' && targetDEField!=''>--> <#assign srcFieldName=srfcaseformat(srcPSDELogicParam.getParamPSDataEntity().getPSDEField(srcFieldName,true).getCodeName(),'l_u2lC')>
</#if>
${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}",${logicName+srcPSDELogicParam.getCodeName()?lower_case}.get("${srcFieldName?lower_case}"));<#comment>源逻辑参数选择了实体</#comment> ${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}",${logicName+srcPSDELogicParam.getCodeName()?lower_case}.get("${srcFieldName?lower_case}"));<#comment>源逻辑参数选择了实体</#comment>
<#--<#else>-->
<#--//暂不支持逻辑参数无实体模式 属性[${srcFieldName?upper_case}]-->
<#--</#if>-->
<#else> <#else>
//暂未支持其余准备参数设置 <#if nodeParam.getSrcValueType()=="CURTIME">
${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}",(new java.sql.Timestamp(new java.util.Date().getTime()))));
<#elseif nodeParam.getSrcValueType()=="OPERATOR">
${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}",curuser.getUserid());
<#elseif nodeParam.getSrcValueType()=="OPERATORNAME">
${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}",curuser.getPersonname());
<#elseif nodeParam.getSrcValueType()=="CONTEXT">
${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}",${logicName+"default"}.get("${srcFieldName?lower_case}"));<#comment>源逻辑参数选择了实体</#comment>
<#elseif nodeParam.getSrcValueType()=="SESSION">
${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}",curuser.getSessionParams().get("${srcFieldName?lower_case}"));
<#elseif nodeParam.getSrcValueType()=="NULLVALUE">
${logicName+targetLogicParam.getCodeName()?lower_case}.set("${targetLogicFieldName?lower_case}",null);
</#if>
</#if> </#if>
</#list> </#list>
<#elseif deLogicNode.getLogicNodeType()=='DEACTION'><#comment>调用实体行为</#comment> <#elseif deLogicNode.getLogicNodeType()=='DEACTION'><#comment>调用实体行为</#comment>
......
...@@ -7,7 +7,7 @@ TARGET=PSDELOGIC ...@@ -7,7 +7,7 @@ TARGET=PSDELOGIC
<extensionElements> <extensionElements>
<tns:import name="java.util.Map" /> <tns:import name="java.util.Map" />
<tns:import name="org.springframework.util.StringUtils"/> <tns:import name="org.springframework.util.StringUtils"/>
<tns:import name="${pub.getPKGCodeName()}.util.helper.CompareHelper"/> <tns:import name="${pub.getPKGCodeName()}.util.helper.RuleUtils"/>
<#assign logicName=(de.codeName+item.codeName)?lower_case> <#assign logicName=(de.codeName+item.codeName)?lower_case>
<#comment>插入逻辑参数</#comment> <#comment>插入逻辑参数</#comment>
<#if item.getPSDELogicParams?? && item.getPSDELogicParams()??> <#if item.getPSDELogicParams?? && item.getPSDELogicParams()??>
...@@ -59,7 +59,6 @@ TARGET=PSDELOGIC ...@@ -59,7 +59,6 @@ TARGET=PSDELOGIC
</#if> </#if>
<#assign LogicLinkCond=LogicLink.getPSDELogicLinkGroupCond()> <#assign LogicLinkCond=LogicLink.getPSDELogicLinkGroupCond()>
<#assign strGroupCond=getGroupCond(LogicLinkCond)> <#assign strGroupCond=getGroupCond(LogicLinkCond)>
<#assign strGroupCond=strGroupCond?replace("ISNOTNULL","!=NULL")?replace("ISNULL","==NULL")?replace("AND","&&")?replace("OR","||")?replace("GT&&EQ",">=")?replace("LT&&EQ","<=")?replace("NOTEQ","!=")?replace("EQ","==")?replace("GT",">")?replace("LT","<") >
eval${strGroupCond} eval${strGroupCond}
]]> ]]>
</conditionExpression> </conditionExpression>
...@@ -93,7 +92,7 @@ TARGET=PSDELOGIC ...@@ -93,7 +92,7 @@ TARGET=PSDELOGIC
<#function getGroupCond LogicLinkCond> <#function getGroupCond LogicLinkCond>
<#assign strRuleCond="("> <#assign strRuleCond="(">
<#if LogicLinkCond.getPSDELogicLinkConds?? && LogicLinkCond.getPSDELogicLinkConds()??><#comment>判断是否有组条件</#comment> <#if LogicLinkCond.getPSDELogicLinkConds?? && LogicLinkCond.getPSDELogicLinkConds()??><#comment>判断是否有组条件</#comment>
<#assign conn=LogicLinkCond.getGroupOP()> <#assign conn=LogicLinkCond.getGroupOP()?replace("AND","&&")?replace("OR","||")>
<#list LogicLinkCond.getPSDELogicLinkConds() as childLogicLinkCond><#comment>组条件,递归</#comment> <#list LogicLinkCond.getPSDELogicLinkConds() as childLogicLinkCond><#comment>组条件,递归</#comment>
<#if childLogicLinkCond.getPSDELogicLinkConds?? && childLogicLinkCond.getPSDELogicLinkConds()??> <#if childLogicLinkCond.getPSDELogicLinkConds?? && childLogicLinkCond.getPSDELogicLinkConds()??>
<#assign strRuleCond=strRuleCond+getGroupCond(childLogicLinkCond)>//getGroupCond <#assign strRuleCond=strRuleCond+getGroupCond(childLogicLinkCond)>//getGroupCond
...@@ -115,18 +114,13 @@ TARGET=PSDELOGIC ...@@ -115,18 +114,13 @@ TARGET=PSDELOGIC
<#assign condBody=""> <#assign condBody="">
<#assign targetParam=LogicLinkCond.getDstLogicParam()><#comment>目标参数</#comment> <#assign targetParam=LogicLinkCond.getDstLogicParam()><#comment>目标参数</#comment>
<#assign targetFieldName=LogicLinkCond.getDstFieldName()><#comment>目标属性名称</#comment> <#assign targetFieldName=LogicLinkCond.getDstFieldName()><#comment>目标属性名称</#comment>
<#assign targetDEField=((targetParam.getParamPSDataEntity().getPSDEField(targetFieldName))!'')><#comment>目标属性</#comment> <#assign targetDEField=((targetParam.getParamPSDataEntity().getPSDEField(targetFieldName,true))!'')><#comment>目标属性</#comment>
<#assign targetDBValueOP=LogicLinkCond.getPSDBValueOPId()><#comment>表达式</#comment> <#assign targetDBValueOP=LogicLinkCond.getPSDBValueOPId()><#comment>表达式</#comment>
<#assign targetValue=LogicLinkCond.getValue()><#comment>值项</#comment> <#assign targetValue=LogicLinkCond.getValue()><#comment>值项</#comment>
<#if targetDEField!=''> <#if targetDEField!=''>
<#if targetDBValueOP=="ISNULL"> targetFieldName=srfcaseformat(targetDEField.codeName,'l_u2lC') ;
<#assign condBody="StringUtils.isEmpty($"+logicName+targetParam.getCodeName()?lower_case+".get"+targetDEField.codeName?cap_first+"()"+")">
<#elseif targetDBValueOP=="ISNOTNULL">
<#assign condBody="!StringUtils.isEmpty($"+logicName+targetParam.getCodeName()?lower_case+".get"+targetDEField.codeName?cap_first+"()"+")">
<#else>
<#assign condBody="CompareHelper.compare($"+logicName+targetParam.getCodeName()?lower_case+".get"+targetDEField.codeName?cap_first+"(),"+"\""+targetValue+"\","+"\""+targetDBValueOP+"\")">
</#if>
</#if> </#if>
<#assign condBody="RuleUtils.test($"+logicName+targetParam.getCodeName()?lower_case+".get(\""+targetFieldName+"\"),\""+targetDBValueOP+"\","+"\""+targetValue+"\")">
<#assign fieldCond=fieldCond+condBody > <#assign fieldCond=fieldCond+condBody >
<#assign fieldCond=fieldCond+")" > <#assign fieldCond=fieldCond+")" >
<#return fieldCond/> <#return fieldCond/>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册