parent
bb12a1fe76
commit
3a3540079b
|
@ -12,6 +12,11 @@ import org.springframework.stereotype.Component;
|
|||
*/
|
||||
@Component
|
||||
public class AviatorEvaluatorBean {
|
||||
/**
|
||||
* 向google匹配方法中注入需要的工具类
|
||||
* @throws IllegalAccessException
|
||||
* @throws NoSuchMethodException
|
||||
*/
|
||||
@Bean
|
||||
public void aviatorEvaluatorInit() throws IllegalAccessException, NoSuchMethodException {
|
||||
AviatorEvaluator.addStaticFunctions("CollUtil", CollUtil.class);
|
||||
|
|
|
@ -8,7 +8,9 @@ import com.yomahub.liteflow.core.NodeComponent;
|
|||
|
||||
@LiteflowComponent("defaultOutput")
|
||||
public class DefaultOutputCmp extends NodeComponent {
|
||||
|
||||
/**
|
||||
* 默认输出
|
||||
*/
|
||||
@Override
|
||||
public void process() {
|
||||
BaseCenter requestData = this.getRequestData();
|
||||
|
|
|
@ -28,6 +28,9 @@ public class OutputCmp extends NodeComponent {
|
|||
@Resource
|
||||
private BaseTemplateService baseTemplateService;
|
||||
|
||||
/**
|
||||
* 输出节点
|
||||
*/
|
||||
@Override
|
||||
public void process() {
|
||||
BaseCenter requestData = this.getRequestData();
|
||||
|
|
|
@ -19,16 +19,32 @@ public class BaseChainController {
|
|||
@Resource
|
||||
private BaseChainService baseChainService;
|
||||
|
||||
/**
|
||||
* 生成动态规则
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
@PostMapping("/generateDynamicChain")
|
||||
public CommonResult generateDynamicChain() {
|
||||
return baseChainService.generateDynamicChain();
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行链路
|
||||
*
|
||||
* @param chainName 链路名称
|
||||
* @return CommonResult
|
||||
*/
|
||||
@GetMapping("/executeChain/{chainName}")
|
||||
public CommonResult executeChain(@PathVariable String chainName) {
|
||||
return baseChainService.executeChain(chainName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有已注入的动态链路
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
@GetMapping("/getChainList")
|
||||
public CommonResult getChainList() {
|
||||
return baseChainService.getChainList();
|
||||
|
|
|
@ -24,11 +24,23 @@ public class BaseDataController {
|
|||
@Resource
|
||||
private BaseDataService baseDataService;
|
||||
|
||||
/**
|
||||
* 创建基础数据
|
||||
*
|
||||
* @param createBaseDataFrom 创建参数
|
||||
* @return CommonResult
|
||||
*/
|
||||
@PostMapping("/createBaseData")
|
||||
public CommonResult createBaseData(@RequestBody CreateBaseDataFrom createBaseDataFrom) {
|
||||
return baseDataService.createBaseData(createBaseDataFrom);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量创建基础数据
|
||||
*
|
||||
* @param createBaseDataFromList 创建参数集合
|
||||
* @return CommonResult
|
||||
*/
|
||||
@PostMapping("/batchCreateBaseData")
|
||||
public CommonResult batchCreateBaseData(@RequestBody List<CreateBaseDataFrom> createBaseDataFromList) {
|
||||
return baseDataService.batchCreateBaseData(createBaseDataFromList);
|
||||
|
|
|
@ -20,12 +20,22 @@ public class BaseNodeController {
|
|||
@Resource
|
||||
private BaseNodeService baseNodeService;
|
||||
|
||||
/**
|
||||
* 创建节点
|
||||
*
|
||||
* @param createNodeFrom 创建参数
|
||||
* @return CommonResult
|
||||
*/
|
||||
@PostMapping("/createNode")
|
||||
public CommonResult createNode(@RequestBody CreateNodeFrom createNodeFrom) {
|
||||
return baseNodeService.createNode(createNodeFrom);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取所有已注入节点
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
@GetMapping("/getNodeList")
|
||||
public CommonResult getNodeList() {
|
||||
return baseNodeService.getNodeList();
|
||||
|
|
|
@ -20,11 +20,22 @@ public class BaseTemplateController {
|
|||
@Resource
|
||||
private BaseTemplateService baseTemplateService;
|
||||
|
||||
/**
|
||||
* 创建爱你模板
|
||||
*
|
||||
* @param createTemplateFrom 创建参数
|
||||
* @return CommonResult
|
||||
*/
|
||||
@PostMapping("/createTemplate")
|
||||
public CommonResult createTemplate(@RequestBody CreateTemplateFrom createTemplateFrom) {
|
||||
return baseTemplateService.createTemplate(createTemplateFrom);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有模板
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
@GetMapping("/getTemplateList")
|
||||
public CommonResult getTemplateList() {
|
||||
return baseTemplateService.getTemplateList();
|
||||
|
|
|
@ -6,7 +6,7 @@ import lombok.Data;
|
|||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
*
|
||||
* 链路
|
||||
* @TableName base_chain
|
||||
*/
|
||||
@TableName(value ="base_chain")
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
|||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 基础数据
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月06日 09:59
|
||||
*/
|
||||
|
|
|
@ -6,7 +6,7 @@ import lombok.Data;
|
|||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
*
|
||||
* 节点
|
||||
* @TableName base_node
|
||||
*/
|
||||
@TableName(value ="base_node")
|
||||
|
|
|
@ -4,9 +4,10 @@ import com.baomidou.mybatisplus.annotation.*;
|
|||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* 模板
|
||||
* @TableName base_template
|
||||
*/
|
||||
@TableName(value ="base_template")
|
||||
|
@ -42,4 +43,10 @@ public class BaseTemplateEntity {
|
|||
@TableField(value = "last_modify_time", fill = FieldFill.UPDATE)
|
||||
private LocalDateTime lastModifyTime;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private List<BaseNodeEntity> baseNodeEntityList;
|
||||
|
||||
}
|
|
@ -5,6 +5,7 @@ import lombok.Getter;
|
|||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* 基础数据类型枚举
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月06日 10:17
|
||||
*/
|
||||
|
|
|
@ -7,6 +7,7 @@ import lombok.Getter;
|
|||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 有效状态枚举
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月14日 11:28
|
||||
*/
|
||||
|
|
|
@ -5,6 +5,7 @@ import lombok.Getter;
|
|||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* 节点类型枚举
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月12日 17:24
|
||||
*/
|
||||
|
|
|
@ -7,6 +7,8 @@ import org.springframework.stereotype.Component;
|
|||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 自动插入创建时间和更新时间
|
||||
*
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月14日 09:39
|
||||
*/
|
||||
|
|
|
@ -4,6 +4,7 @@ import cn.hutool.json.JSONObject;
|
|||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 规则匹配数据类
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月05日 18:15
|
||||
*/
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.example.liteflow.mysql.model;
|
|||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 输出数据类
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月12日 18:30
|
||||
*/
|
||||
|
|
|
@ -3,15 +3,22 @@ package com.example.liteflow.mysql.model.rule;
|
|||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 匹配内容和运算符
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月07日 17:55
|
||||
*/
|
||||
@Data
|
||||
public class Match {
|
||||
// 条件运算符:"$eq"
|
||||
/**
|
||||
* 条件运算符:"$eq"
|
||||
*/
|
||||
private String conditionalOperators;
|
||||
// 匹配值
|
||||
/**
|
||||
* 匹配值
|
||||
*/
|
||||
private String matchingValue;
|
||||
// 匹配内容
|
||||
/**
|
||||
* 匹配内容
|
||||
*/
|
||||
private String matchingContent;
|
||||
}
|
||||
|
|
|
@ -5,19 +5,34 @@ import lombok.Data;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 规则类
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月07日 16:04
|
||||
*/
|
||||
@Data
|
||||
public class Rule {
|
||||
// 逻辑运算符"$or"
|
||||
/**
|
||||
* 逻辑运算符"$or"
|
||||
*/
|
||||
private String logicOperators;
|
||||
// 条件运算符:"$eq"
|
||||
/**
|
||||
* 条件运算符:"$eq"
|
||||
*/
|
||||
private String conditionalOperators;
|
||||
// 匹配值
|
||||
/**
|
||||
* 匹配值
|
||||
*/
|
||||
private String matchingValue;
|
||||
// 匹配内容
|
||||
/**
|
||||
* 匹配内容
|
||||
*/
|
||||
private String matchingContent;
|
||||
/**
|
||||
* 子规则
|
||||
*/
|
||||
private List<Rule> children;
|
||||
/**
|
||||
* 自身下多条规则
|
||||
*/
|
||||
private List<Match> matches;
|
||||
}
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
package com.example.liteflow.mysql.model.rule;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: 陈韦龙
|
||||
* @date: 2022年12月07日 10:41
|
||||
*/
|
||||
@Data
|
||||
public class RuleForm {
|
||||
private String roleName;
|
||||
private List<Rule> rules;
|
||||
}
|
|
@ -17,6 +17,10 @@ public class AviatorEvaluatorRunner implements CommandLineRunner {
|
|||
@Resource
|
||||
private BaseChainService baseChainService;
|
||||
|
||||
/**
|
||||
* 初始化链路和珠莲路
|
||||
* @param args
|
||||
*/
|
||||
@Override
|
||||
public void run(String... args) {
|
||||
baseChainService.initDynamicChain();
|
||||
|
|
|
@ -10,13 +10,35 @@ import com.example.liteflow.mysql.model.CommonResult;
|
|||
* @createDate 2022-12-14 15:25:39
|
||||
*/
|
||||
public interface BaseChainService extends IService<BaseChainEntity> {
|
||||
/**
|
||||
* 生成动态规则
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
CommonResult generateDynamicChain();
|
||||
|
||||
/**
|
||||
* 初始化链路
|
||||
*/
|
||||
void initDynamicChain();
|
||||
|
||||
/**
|
||||
* 初始化主链路
|
||||
*/
|
||||
void initMainChain();
|
||||
|
||||
/**
|
||||
* 执行链路
|
||||
*
|
||||
* @param chainName 链路名称
|
||||
* @return CommonResult
|
||||
*/
|
||||
CommonResult executeChain(String chainName);
|
||||
|
||||
/**
|
||||
* 获取所有已注入的动态链路
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
CommonResult getChainList();
|
||||
}
|
||||
|
|
|
@ -12,8 +12,28 @@ import java.util.List;
|
|||
* @date: 2022年12月06日 09:58
|
||||
*/
|
||||
public interface BaseDataService extends IService<BaseDataEntity> {
|
||||
BaseDataEntity getByTypeAndTemplateId(String type, String attribution);
|
||||
/**
|
||||
* 根据类型和模板Id获取基础数据
|
||||
*
|
||||
* @param type 类型
|
||||
* @param templateId 模板Id
|
||||
* @return BaseDataEntity
|
||||
*/
|
||||
BaseDataEntity getByTypeAndTemplateId(String type, String templateId);
|
||||
|
||||
/**
|
||||
* 创建基础数据
|
||||
*
|
||||
* @param createBaseDataFrom 创建参数
|
||||
* @return CommonResult
|
||||
*/
|
||||
CommonResult createBaseData(CreateBaseDataFrom createBaseDataFrom);
|
||||
|
||||
/**
|
||||
* 批量创建基础数据
|
||||
*
|
||||
* @param createBaseDataFromList 创建参数集合
|
||||
* @return CommonResult
|
||||
*/
|
||||
CommonResult batchCreateBaseData(List<CreateBaseDataFrom> createBaseDataFromList);
|
||||
}
|
||||
|
|
|
@ -7,17 +7,33 @@ import com.example.liteflow.mysql.model.node.CreateNodeFrom;
|
|||
import com.example.liteflow.mysql.model.node.UpdateNodeFrom;
|
||||
|
||||
/**
|
||||
* @author 75349
|
||||
* @description 针对表【base_node】的数据库操作Service
|
||||
* @createDate 2022-12-14 09:37:25
|
||||
*/
|
||||
* @author 75349
|
||||
* @description 针对表【base_node】的数据库操作Service
|
||||
* @createDate 2022-12-14 09:37:25
|
||||
*/
|
||||
public interface BaseNodeService extends IService<BaseNodeEntity> {
|
||||
|
||||
/**
|
||||
* 创建节点
|
||||
*
|
||||
* @param createNodeFrom 创建参数
|
||||
* @return CommonResult
|
||||
*/
|
||||
CommonResult createNode(CreateNodeFrom createNodeFrom);
|
||||
|
||||
CommonResult updateNode(UpdateNodeFrom updateNodeFrom);
|
||||
|
||||
/**
|
||||
* 根据动态节点中的Id获取节点
|
||||
*
|
||||
* @param nodeId 动态节点中的Id获取节点
|
||||
* @return BaseNodeEntity
|
||||
*/
|
||||
BaseNodeEntity getByNodeId(String nodeId);
|
||||
|
||||
/**
|
||||
* 获取所有已注入节点
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
CommonResult getNodeList();
|
||||
}
|
||||
|
|
|
@ -14,12 +14,25 @@ import java.util.List;
|
|||
* @createDate 2022-12-14 09:37:25
|
||||
*/
|
||||
public interface BaseTemplateService extends IService<BaseTemplateEntity> {
|
||||
|
||||
/**
|
||||
* 创建爱你模板
|
||||
*
|
||||
* @param createTemplateFrom 创建参数
|
||||
* @return CommonResult
|
||||
*/
|
||||
CommonResult createTemplate(CreateTemplateFrom createTemplateFrom);
|
||||
|
||||
boolean updateTemplate(UpdateTemplateFrom updateTemplateFrom);
|
||||
|
||||
/**
|
||||
* 获取所有未生成链路的模板
|
||||
*
|
||||
* @return List<BaseTemplateEntity>
|
||||
*/
|
||||
List<BaseTemplateEntity> getNotExistsChain();
|
||||
|
||||
/**
|
||||
* 获取所有模板
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
CommonResult getTemplateList();
|
||||
}
|
||||
|
|
|
@ -49,6 +49,11 @@ public class BaseChainServiceImpl extends ServiceImpl<BaseChainMapper, BaseChain
|
|||
@Resource
|
||||
private FlowExecutor flowExecutor;
|
||||
|
||||
/**
|
||||
* 生成动态规则
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
@Override
|
||||
public CommonResult generateDynamicChain() {
|
||||
LambdaQueryWrapper<BaseTemplateEntity> templateQueryWrapper = new LambdaQueryWrapper<>();
|
||||
|
@ -56,27 +61,34 @@ public class BaseChainServiceImpl extends ServiceImpl<BaseChainMapper, BaseChain
|
|||
List<BaseTemplateEntity> templateList = baseTemplateService.list(templateQueryWrapper);
|
||||
log.info("templateList size = {}", templateList.size());
|
||||
if (CollUtil.isNotEmpty(templateList)) {
|
||||
Map<BaseTemplateEntity, List<BaseNodeEntity>> templateAndNodeMap = new HashMap<>();
|
||||
templateList.forEach(template -> {
|
||||
String templateId = template.getId();
|
||||
LambdaUpdateWrapper<BaseNodeEntity> nodeQueryWrapper = new LambdaUpdateWrapper<>();
|
||||
nodeQueryWrapper.eq(BaseNodeEntity::getTemplateId, templateId)
|
||||
.eq(BaseNodeEntity::getEnableMark, EnableMarkEnum.Enable.getValue());
|
||||
List<BaseNodeEntity> nodeList = baseNodeService.list(nodeQueryWrapper);
|
||||
templateAndNodeMap.put(template, nodeList);
|
||||
if (CollUtil.isNotEmpty(nodeList)) {
|
||||
template.setBaseNodeEntityList(nodeList);
|
||||
}
|
||||
});
|
||||
this.generateOrUpdateChain(templateAndNodeMap);
|
||||
List<BaseTemplateEntity> collect = templateList.stream().filter(template -> CollUtil.isNotEmpty(template.getBaseNodeEntityList())).collect(Collectors.toList());
|
||||
log.info("collect size = {}", collect.size());
|
||||
this.generateOrUpdateChain(collect);
|
||||
}
|
||||
this.initMainChain();
|
||||
return CommonResult.success("生成链路成功", this.list());
|
||||
}
|
||||
|
||||
private void generateOrUpdateChain(Map<BaseTemplateEntity, List<BaseNodeEntity>> templateAndNodeMap) {
|
||||
for (Map.Entry<BaseTemplateEntity, List<BaseNodeEntity>> entry : templateAndNodeMap.entrySet()) {
|
||||
BaseTemplateEntity templateEntity = entry.getKey();
|
||||
/**
|
||||
* 保存或更新链路
|
||||
*
|
||||
* @param baseTemplateEntityList
|
||||
*/
|
||||
private void generateOrUpdateChain(List<BaseTemplateEntity> baseTemplateEntityList) {
|
||||
baseTemplateEntityList.forEach(templateEntity -> {
|
||||
String templateName = templateEntity.getTemplateName();
|
||||
String templateId = templateEntity.getId();
|
||||
List<BaseNodeEntity> nodeList = entry.getValue();
|
||||
List<BaseNodeEntity> nodeList = templateEntity.getBaseNodeEntityList();
|
||||
// 将所有节点注入
|
||||
nodeList.forEach(node -> {
|
||||
String nodeType = node.getNodeType();
|
||||
|
@ -151,9 +163,12 @@ public class BaseChainServiceImpl extends ServiceImpl<BaseChainMapper, BaseChain
|
|||
checkExists.setElData(stringBuilder.toString());
|
||||
this.updateById(checkExists);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化链路
|
||||
*/
|
||||
@Override
|
||||
public void initDynamicChain() {
|
||||
log.info("进入【初始化链路】方法");
|
||||
|
@ -162,7 +177,6 @@ public class BaseChainServiceImpl extends ServiceImpl<BaseChainMapper, BaseChain
|
|||
List<BaseTemplateEntity> templateList = baseTemplateService.list(templateQueryWrapper);
|
||||
log.info("templateList size = {}", templateList.size());
|
||||
if (CollUtil.isNotEmpty(templateList)) {
|
||||
Map<BaseTemplateEntity, List<BaseNodeEntity>> templateAndNodeMap = new HashMap<>();
|
||||
templateList.forEach(template -> {
|
||||
String templateId = template.getId();
|
||||
LambdaUpdateWrapper<BaseNodeEntity> nodeQueryWrapper = new LambdaUpdateWrapper<>();
|
||||
|
@ -170,14 +184,18 @@ public class BaseChainServiceImpl extends ServiceImpl<BaseChainMapper, BaseChain
|
|||
.eq(BaseNodeEntity::getEnableMark, EnableMarkEnum.Enable.getValue());
|
||||
List<BaseNodeEntity> nodeList = baseNodeService.list(nodeQueryWrapper);
|
||||
if (CollUtil.isNotEmpty(nodeList)) {
|
||||
templateAndNodeMap.put(template, nodeList);
|
||||
template.setBaseNodeEntityList(nodeList);
|
||||
}
|
||||
});
|
||||
log.info("templateAndNodeMap size = {}", templateAndNodeMap.size());
|
||||
this.generateOrUpdateChain(templateAndNodeMap);
|
||||
List<BaseTemplateEntity> collect = templateList.stream().filter(template -> CollUtil.isNotEmpty(template.getBaseNodeEntityList())).collect(Collectors.toList());
|
||||
log.info("collect size = {}", collect.size());
|
||||
this.generateOrUpdateChain(collect);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化主链路
|
||||
*/
|
||||
@Override
|
||||
public void initMainChain() {
|
||||
log.info("进入【初始化主链路】方法");
|
||||
|
@ -212,6 +230,12 @@ public class BaseChainServiceImpl extends ServiceImpl<BaseChainMapper, BaseChain
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行链路
|
||||
*
|
||||
* @param chainName 链路名称
|
||||
* @return CommonResult
|
||||
*/
|
||||
@Override
|
||||
public CommonResult executeChain(String chainName) {
|
||||
List<BaseCenter> list = this.generateCostCenterTestData();
|
||||
|
@ -228,6 +252,11 @@ public class BaseChainServiceImpl extends ServiceImpl<BaseChainMapper, BaseChain
|
|||
return CommonResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成测试用数据
|
||||
*
|
||||
* @return List<BaseCenter>
|
||||
*/
|
||||
private List<BaseCenter> generateCostCenterTestData() {
|
||||
List<BaseCenter> list = new ArrayList<>();
|
||||
BaseCenter costCenter = new BaseCenter();
|
||||
|
@ -265,6 +294,11 @@ public class BaseChainServiceImpl extends ServiceImpl<BaseChainMapper, BaseChain
|
|||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有已注入的动态链路
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
@Override
|
||||
public CommonResult getChainList() {
|
||||
List<String> chainNameList = FlowBus.getChainMap().values().stream()
|
||||
|
|
|
@ -28,6 +28,13 @@ import java.util.stream.Collectors;
|
|||
@Slf4j
|
||||
@Service
|
||||
public class BaseDataServiceImpl extends ServiceImpl<BaseDataMapper, BaseDataEntity> implements BaseDataService {
|
||||
/**
|
||||
* 根据类型和模板Id获取基础数据
|
||||
*
|
||||
* @param type 类型
|
||||
* @param templateId 模板Id
|
||||
* @return BaseDataEntity
|
||||
*/
|
||||
@Override
|
||||
public BaseDataEntity getByTypeAndTemplateId(String type, String templateId) {
|
||||
log.info("type = {}, templateId = {}", type, templateId);
|
||||
|
@ -37,6 +44,12 @@ public class BaseDataServiceImpl extends ServiceImpl<BaseDataMapper, BaseDataEnt
|
|||
return this.getOne(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建基础数据
|
||||
*
|
||||
* @param createBaseDataFrom 创建参数
|
||||
* @return CommonResult
|
||||
*/
|
||||
@Override
|
||||
public CommonResult createBaseData(CreateBaseDataFrom createBaseDataFrom) {
|
||||
log.info("进入【创建基础数据】方法 = {}", JSONUtil.toJsonStr(createBaseDataFrom));
|
||||
|
@ -59,6 +72,12 @@ public class BaseDataServiceImpl extends ServiceImpl<BaseDataMapper, BaseDataEnt
|
|||
return CommonResult.success("创建基础数据成功", baseDataEntity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量创建基础数据
|
||||
*
|
||||
* @param createBaseDataFromList 创建参数集合
|
||||
* @return CommonResult
|
||||
*/
|
||||
@Override
|
||||
public CommonResult batchCreateBaseData(List<CreateBaseDataFrom> createBaseDataFromList) {
|
||||
log.info("进入【批量创建基础数据】方法 = {}", JSONUtil.toJsonStr(createBaseDataFromList));
|
||||
|
|
|
@ -42,7 +42,12 @@ public class BaseNodeServiceImpl extends ServiceImpl<BaseNodeMapper, BaseNodeEnt
|
|||
|
||||
@Resource
|
||||
private BaseTemplateService baseTemplateService;
|
||||
|
||||
/**
|
||||
* 创建节点
|
||||
*
|
||||
* @param createNodeFrom 创建参数
|
||||
* @return CommonResult
|
||||
*/
|
||||
@Override
|
||||
public CommonResult createNode(CreateNodeFrom createNodeFrom) {
|
||||
log.info("进入【创建节点】方法 = {}", JSONUtil.toJsonStr(createNodeFrom));
|
||||
|
@ -96,6 +101,12 @@ public class BaseNodeServiceImpl extends ServiceImpl<BaseNodeMapper, BaseNodeEnt
|
|||
return CommonResult.success("更新节点成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据动态节点中的Id获取节点
|
||||
*
|
||||
* @param nodeId 动态节点中的Id获取节点
|
||||
* @return BaseNodeEntity
|
||||
*/
|
||||
@Override
|
||||
public BaseNodeEntity getByNodeId(String nodeId) {
|
||||
LambdaQueryWrapper<BaseNodeEntity> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
|
|
@ -18,14 +18,20 @@ import java.util.List;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author 75349
|
||||
* @description 针对表【base_template】的数据库操作Service实现
|
||||
* @createDate 2022-12-14 09:37:25
|
||||
*/
|
||||
* @author 75349
|
||||
* @description 针对表【base_template】的数据库操作Service实现
|
||||
* @createDate 2022-12-14 09:37:25
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class BaseTemplateServiceImpl extends ServiceImpl<BaseTemplateMapper, BaseTemplateEntity>
|
||||
implements BaseTemplateService{
|
||||
implements BaseTemplateService {
|
||||
/**
|
||||
* 创建爱你模板
|
||||
*
|
||||
* @param createTemplateFrom 创建参数
|
||||
* @return CommonResult
|
||||
*/
|
||||
@Override
|
||||
public CommonResult createTemplate(CreateTemplateFrom createTemplateFrom) {
|
||||
log.info("进入【创建模板】方法 = {}", createTemplateFrom);
|
||||
|
@ -49,11 +55,21 @@ public class BaseTemplateServiceImpl extends ServiceImpl<BaseTemplateMapper, Bas
|
|||
return this.update(updateWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有未生成链路的模板
|
||||
*
|
||||
* @return List<BaseTemplateEntity>
|
||||
*/
|
||||
@Override
|
||||
public List<BaseTemplateEntity> getNotExistsChain() {
|
||||
return this.baseMapper.getNotExistsChain();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有模板
|
||||
*
|
||||
* @return CommonResult
|
||||
*/
|
||||
@Override
|
||||
public CommonResult getTemplateList() {
|
||||
List<BaseTemplateEntity> templateList = this.list();
|
||||
|
|
|
@ -15,13 +15,21 @@ import java.util.stream.Collectors;
|
|||
* @date: 2022年12月08日 15:37
|
||||
*/
|
||||
public class RoleUtil {
|
||||
/**
|
||||
* 规则解析
|
||||
*
|
||||
* @param rule 规则
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
public static Map<String, Object> parseRole(Rule rule) {
|
||||
List<Match> matchList = rule.getMatches();
|
||||
List<Rule> ruleChildren = rule.getChildren();
|
||||
String logicOperators = rule.getLogicOperators();
|
||||
if (CollUtil.isNotEmpty(ruleChildren)) {
|
||||
List<Map<String,Object>> collect = ruleChildren.stream().map(child -> {
|
||||
// 存在子的情况
|
||||
List<Map<String, Object>> collect = ruleChildren.stream().map(child -> {
|
||||
List<Rule> sunList = child.getChildren();
|
||||
// 存在子嵌套子的情况
|
||||
if (CollUtil.isNotEmpty(sunList)) {
|
||||
List<Map<String, Object>> sunCollect = sunList.stream().map(RoleUtil::parseRole).collect(Collectors.toList());
|
||||
String childLogicOperators = child.getLogicOperators();
|
||||
|
@ -48,11 +56,12 @@ public class RoleUtil {
|
|||
Map<String, Object> childMap = new HashMap<>();
|
||||
childMap.put(logicOperators, collect);
|
||||
return childMap;
|
||||
} else if (CollUtil.isNotEmpty(matchList)){
|
||||
List<Map<String, Object>> list = matchList.stream().map(matche -> {
|
||||
String conditionalOperators = matche.getConditionalOperators();
|
||||
String matchingValue = matche.getMatchingValue();
|
||||
String matchingContent = matche.getMatchingContent();
|
||||
} else if (CollUtil.isNotEmpty(matchList)) {
|
||||
// 存在多条规则的情况
|
||||
List<Map<String, Object>> list = matchList.stream().map(match -> {
|
||||
String conditionalOperators = match.getConditionalOperators();
|
||||
String matchingValue = match.getMatchingValue();
|
||||
String matchingContent = match.getMatchingContent();
|
||||
List<String> itemList = Lists.newArrayList(matchingValue, matchingContent);
|
||||
Map<String, Object> itemMap = new HashMap<>();
|
||||
itemMap.put(conditionalOperators, itemList);
|
||||
|
@ -62,6 +71,7 @@ public class RoleUtil {
|
|||
childMap.put(logicOperators, list);
|
||||
return childMap;
|
||||
} else {
|
||||
// 只有一条规则的情况
|
||||
String matchingValue = rule.getMatchingValue();
|
||||
String matchingContent = rule.getMatchingContent();
|
||||
String conditionalOperators = rule.getConditionalOperators();
|
||||
|
|
|
@ -6,7 +6,6 @@ import com.example.liteflow.mysql.enums.NodeEnum;
|
|||
import com.example.liteflow.mysql.model.node.CreateNodeFrom;
|
||||
import com.example.liteflow.mysql.model.rule.Match;
|
||||
import com.example.liteflow.mysql.model.rule.Rule;
|
||||
import com.example.liteflow.mysql.model.rule.RuleForm;
|
||||
import org.assertj.core.util.Lists;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -248,10 +247,6 @@ public class MyTest {
|
|||
rule.setChildren(children);
|
||||
|
||||
List<Rule> rules = Lists.newArrayList(rule);
|
||||
RuleForm ruleForm = new RuleForm();
|
||||
ruleForm.setRules(rules);
|
||||
ruleForm.setRoleName("costCenter01Cmp");
|
||||
// baseRoleService.createRole(roleForm);
|
||||
// System.out.println(JSONUtil.toJsonStr(roles));
|
||||
// List<? extends Map<String, ?>> collect = roles.stream().map(this::parseRole).collect(Collectors.toList());
|
||||
// System.out.println(JSONUtil.toJsonStr(collect));
|
||||
|
@ -298,10 +293,6 @@ public class MyTest {
|
|||
rule2.setMatches(matches2);
|
||||
|
||||
List<Rule> rules = Lists.newArrayList(rule, rule2);
|
||||
RuleForm ruleForm = new RuleForm();
|
||||
ruleForm.setRules(rules);
|
||||
ruleForm.setRoleName("costCenter02Cmp");
|
||||
// baseRoleService.createRole(roleForm);
|
||||
System.out.println(JSONUtil.toJsonStr(rules));
|
||||
List<? extends Map<String, ?>> collect = rules.stream().map(this::parseRole).collect(Collectors.toList());
|
||||
System.out.println(JSONUtil.toJsonStr(collect));
|
||||
|
@ -359,10 +350,6 @@ public class MyTest {
|
|||
rule2.setChildren(children2);
|
||||
|
||||
List<Rule> rules = Lists.newArrayList(rule, rule2);
|
||||
RuleForm ruleForm = new RuleForm();
|
||||
ruleForm.setRules(rules);
|
||||
ruleForm.setRoleName("profitCenter01Cmp");
|
||||
// baseRoleService.createRole(roleForm);
|
||||
System.out.println(JSONUtil.toJsonStr(rules));
|
||||
List<? extends Map<String, ?>> collect = rules.stream().map(this::parseRole).collect(Collectors.toList());
|
||||
System.out.println(JSONUtil.toJsonStr(collect));
|
||||
|
@ -414,10 +401,6 @@ public class MyTest {
|
|||
rule2.setChildren(children2);
|
||||
|
||||
List<Rule> rules = Lists.newArrayList(rule, rule2);
|
||||
RuleForm ruleForm = new RuleForm();
|
||||
ruleForm.setRules(rules);
|
||||
ruleForm.setRoleName("profitCenter02Cmp");
|
||||
// baseRoleService.createRole(roleForm);
|
||||
System.out.println(JSONUtil.toJsonStr(rules));
|
||||
List<? extends Map<String, ?>> collect = rules.stream().map(this::parseRole).collect(Collectors.toList());
|
||||
System.out.println(JSONUtil.toJsonStr(collect));
|
||||
|
|
Loading…
Reference in New Issue