1.增加chain判断是否已存在

This commit is contained in:
chenweilong 2022-12-13 17:31:01 +08:00
parent 82c79408bd
commit 5249b545c5
4 changed files with 17 additions and 15 deletions

View File

@ -42,12 +42,14 @@ public class AviatorEvaluatorRunner implements CommandLineRunner {
String scriptClass = dynamicScript.getScriptClass();
String nodeType = dynamicScript.getNodeType();
if (NodeEnum.CommonNode.getName().equals(nodeType)) {
LiteFlowNodeBuilder.createCommonNode().setId(scriptId)
LiteFlowNodeBuilder.createCommonNode()
.setId(scriptId)
.setName(scriptName)
.setClazz(scriptClass)
.build();
} else if (NodeEnum.IfNode.getName().equals(nodeType)) {
LiteFlowNodeBuilder.createIfNode().setId(scriptId)
LiteFlowNodeBuilder.createIfNode()
.setId(scriptId)
.setName(scriptName)
.setClazz(scriptClass)
.build();
@ -58,11 +60,15 @@ public class AviatorEvaluatorRunner implements CommandLineRunner {
List<ChainEntity> chainEntityList = chainService.list();
log.info("AviatorEvaluatorRunner-chainEntityList = {}", chainEntityList.size());
chainEntityList.forEach(chainEntity -> {
LiteFlowChainELBuilder.createChain()
.setChainId(chainEntity.getChainName())
.setEL(chainEntity.getElData())
.build();
flowExecutor.reloadRule();
String chainName = chainEntity.getChainName();
boolean containChain = FlowBus.containChain(chainName);
if (!containChain) {
LiteFlowChainELBuilder.createChain()
.setChainId(chainName)
.setEL(chainEntity.getElData())
.build();
flowExecutor.reloadRule();
}
});
}
}

View File

@ -16,6 +16,7 @@ import com.example.liteflow.mysql.service.DynamicScriptService;
import com.example.liteflow.mysql.util.ConditionParser;
import com.example.liteflow.mysql.util.RoleUtil;
import com.googlecode.aviator.AviatorEvaluator;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeIfComponent;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Lists;
@ -31,17 +32,10 @@ import java.util.stream.Collectors;
* @author: 陈韦龙
* @date: 2022年12月05日 10:15
*/
//@LiteflowComponent("costCenterCmp")
@Component
@Slf4j
public class CostCenterCmp extends NodeIfComponent {
private static final String drool = "[{\"$or\": [{\"$and\": [{\"$contains\": [sectionClassification, sectionClassificationList]}, {\"$contains\": [businessType, businessTypeList]}, {\"$contains\": [salesman, salesmanList]}, {\"$contains\": [businessCategory, businessCategoryList]}]}]}, {\"$or\": [{\"$or\": [{\"$and\": [{\"$contains\": [sectionClassification, sectionClassificationList]}, {\"$contains\": [salesman, salesmanList]}]}]}, {\"$or\": [{\"$contains\": [businessType, businessTypeList]}]}]}]";
private static final List<String> sectionClassificationList = Lists.newArrayList("汇差", "手续费", "成本科目");
private static final List<String> businessTypeList = Lists.newArrayList("货代", "报关", "船代", "散杂货");
private static final List<String> salesmanList = Lists.newArrayList("仓干配物流部(物流)");
private static final List<String> businessCategoryList = Lists.newArrayList("全货船业务", "进出岛仓干配");
@Resource
private BaseDataService baseDataService;
@Resource

View File

@ -35,7 +35,6 @@ import java.util.stream.Collectors;
@Slf4j
public class ProfitCenterCmp extends NodeIfComponent {
private static final String drool = "[{\"$or\": [{\"$and\": [{\"$contains\": [sectionClassification, sectionClassificationList]}, {\"$contains\": [businessType, businessTypeList]}, {\"$contains\": [salesman, salesmanList]}, {\"$contains\": [businessCategory, businessCategoryList]}]}]}, {\"$or\": [{\"$or\": [{\"$and\": [{\"$contains\": [sectionClassification, sectionClassificationList]}, {\"$contains\": [salesman, salesmanList]}]}]}, {\"$or\": [{\"$contains\": [businessType, businessTypeList]}]}]}]";
@Resource
private BaseDataService baseDataService;
@Resource

View File

@ -16,6 +16,8 @@ import com.yomahub.liteflow.core.FlowExecutor;
import com.yomahub.liteflow.flow.FlowBus;
import com.yomahub.liteflow.flow.LiteflowResponse;
import com.yomahub.liteflow.flow.element.Chain;
import com.yomahub.liteflow.flow.element.Node;
import com.yomahub.liteflow.flow.element.condition.Condition;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -40,6 +42,7 @@ public class ChainServiceImpl extends ServiceImpl<ChainMapper, ChainEntity> impl
public void createChain(ChainEntity chainEntity) {
this.save(chainEntity);
}
@Override
public void dynamicGenerateChain(ChainEntity chainEntity) {
LiteFlowChainELBuilder.createChain()