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 scriptClass = dynamicScript.getScriptClass();
String nodeType = dynamicScript.getNodeType(); String nodeType = dynamicScript.getNodeType();
if (NodeEnum.CommonNode.getName().equals(nodeType)) { if (NodeEnum.CommonNode.getName().equals(nodeType)) {
LiteFlowNodeBuilder.createCommonNode().setId(scriptId) LiteFlowNodeBuilder.createCommonNode()
.setId(scriptId)
.setName(scriptName) .setName(scriptName)
.setClazz(scriptClass) .setClazz(scriptClass)
.build(); .build();
} else if (NodeEnum.IfNode.getName().equals(nodeType)) { } else if (NodeEnum.IfNode.getName().equals(nodeType)) {
LiteFlowNodeBuilder.createIfNode().setId(scriptId) LiteFlowNodeBuilder.createIfNode()
.setId(scriptId)
.setName(scriptName) .setName(scriptName)
.setClazz(scriptClass) .setClazz(scriptClass)
.build(); .build();
@ -58,11 +60,15 @@ public class AviatorEvaluatorRunner implements CommandLineRunner {
List<ChainEntity> chainEntityList = chainService.list(); List<ChainEntity> chainEntityList = chainService.list();
log.info("AviatorEvaluatorRunner-chainEntityList = {}", chainEntityList.size()); log.info("AviatorEvaluatorRunner-chainEntityList = {}", chainEntityList.size());
chainEntityList.forEach(chainEntity -> { chainEntityList.forEach(chainEntity -> {
String chainName = chainEntity.getChainName();
boolean containChain = FlowBus.containChain(chainName);
if (!containChain) {
LiteFlowChainELBuilder.createChain() LiteFlowChainELBuilder.createChain()
.setChainId(chainEntity.getChainName()) .setChainId(chainName)
.setEL(chainEntity.getElData()) .setEL(chainEntity.getElData())
.build(); .build();
flowExecutor.reloadRule(); 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.ConditionParser;
import com.example.liteflow.mysql.util.RoleUtil; import com.example.liteflow.mysql.util.RoleUtil;
import com.googlecode.aviator.AviatorEvaluator; import com.googlecode.aviator.AviatorEvaluator;
import com.yomahub.liteflow.annotation.LiteflowComponent;
import com.yomahub.liteflow.core.NodeIfComponent; import com.yomahub.liteflow.core.NodeIfComponent;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Lists; import org.assertj.core.util.Lists;
@ -31,17 +32,10 @@ import java.util.stream.Collectors;
* @author: 陈韦龙 * @author: 陈韦龙
* @date: 2022年12月05日 10:15 * @date: 2022年12月05日 10:15
*/ */
//@LiteflowComponent("costCenterCmp")
@Component @Component
@Slf4j @Slf4j
public class CostCenterCmp extends NodeIfComponent { 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 @Resource
private BaseDataService baseDataService; private BaseDataService baseDataService;
@Resource @Resource

View File

@ -35,7 +35,6 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class ProfitCenterCmp extends NodeIfComponent { 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 @Resource
private BaseDataService baseDataService; private BaseDataService baseDataService;
@Resource @Resource

View File

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