From 5f79c574a8effc3bed07dcec4a3705daace35855 Mon Sep 17 00:00:00 2001 From: 75349 <753495441@qq.com> Date: Thu, 15 Dec 2022 17:34:41 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=88=A0=E9=99=A4=E6=97=A0=E6=95=88=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/liteflow/mysql/cmp/OutputCmp.java | 11 +- .../mysql/controller/BaseChainController.java | 2 - .../mysql/enums/BaseDataAttributionEnum.java | 19 -- .../mysql/handler/MybatisHandler.java | 3 - .../liteflow/mysql/model/CommonResult.java | 4 - .../mysql/runner/AviatorEvaluatorRunner.java | 3 +- .../mysql/service/BaseChainService.java | 3 - .../service/impl/BaseChainServiceImpl.java | 241 ++++++------------ .../service/impl/BaseNodeServiceImpl.java | 3 +- .../service/impl/BaseTemplateServiceImpl.java | 3 +- src/test/java/MyTest.java | 1 + 11 files changed, 92 insertions(+), 201 deletions(-) delete mode 100644 src/main/java/com/example/liteflow/mysql/enums/BaseDataAttributionEnum.java diff --git a/src/main/java/com/example/liteflow/mysql/cmp/OutputCmp.java b/src/main/java/com/example/liteflow/mysql/cmp/OutputCmp.java index bb72c75..ba9ac97 100644 --- a/src/main/java/com/example/liteflow/mysql/cmp/OutputCmp.java +++ b/src/main/java/com/example/liteflow/mysql/cmp/OutputCmp.java @@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONNull; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.example.liteflow.mysql.entity.BaseNodeEntity; @@ -50,14 +49,10 @@ public class OutputCmp extends NodeComponent { JSONObject jsonObject = requestData.getJsonObject(); if (ObjectUtil.isNull(jsonObject)) { jsonObject = new JSONObject(); - jsonObject.putOpt(templateName + fieldName, fieldValue); - requestData.setGenerateCode(null); - requestData.setJsonObject(jsonObject); - } else { - jsonObject.putOpt(templateName + fieldName, fieldValue); - requestData.setGenerateCode(null); - requestData.setJsonObject(jsonObject); } + jsonObject.putOpt(templateName + fieldName, fieldValue); + requestData.setGenerateCode(null); + requestData.setJsonObject(jsonObject); } } diff --git a/src/main/java/com/example/liteflow/mysql/controller/BaseChainController.java b/src/main/java/com/example/liteflow/mysql/controller/BaseChainController.java index cb49cff..b12a9ba 100644 --- a/src/main/java/com/example/liteflow/mysql/controller/BaseChainController.java +++ b/src/main/java/com/example/liteflow/mysql/controller/BaseChainController.java @@ -1,9 +1,7 @@ package com.example.liteflow.mysql.controller; import com.example.liteflow.mysql.model.CommonResult; -import com.example.liteflow.mysql.model.node.CreateNodeFrom; import com.example.liteflow.mysql.service.BaseChainService; -import com.example.liteflow.mysql.service.BaseNodeService; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; diff --git a/src/main/java/com/example/liteflow/mysql/enums/BaseDataAttributionEnum.java b/src/main/java/com/example/liteflow/mysql/enums/BaseDataAttributionEnum.java deleted file mode 100644 index d9dc7e3..0000000 --- a/src/main/java/com/example/liteflow/mysql/enums/BaseDataAttributionEnum.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.example.liteflow.mysql.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.ToString; - -/** - * @author: 陈韦龙 - * @date: 2022年12月06日 14:43 - */ -@Getter -@AllArgsConstructor -@ToString -public enum BaseDataAttributionEnum { - costCenter("costCenter"), - profitCenter("profitCenter"), - ; - private final String attribution; -} diff --git a/src/main/java/com/example/liteflow/mysql/handler/MybatisHandler.java b/src/main/java/com/example/liteflow/mysql/handler/MybatisHandler.java index 577efef..3e571de 100644 --- a/src/main/java/com/example/liteflow/mysql/handler/MybatisHandler.java +++ b/src/main/java/com/example/liteflow/mysql/handler/MybatisHandler.java @@ -1,7 +1,6 @@ package com.example.liteflow.mysql.handler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; -import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; @@ -12,12 +11,10 @@ import java.time.LocalDateTime; * @date: 2022年12月14日 09:39 */ @Component -@Slf4j public class MybatisHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.setFieldValByName("creatorTime", LocalDateTime.now(), metaObject); -// this.setFieldValByName("lastModifyTime", LocalDateTime.now(), metaObject); } @Override diff --git a/src/main/java/com/example/liteflow/mysql/model/CommonResult.java b/src/main/java/com/example/liteflow/mysql/model/CommonResult.java index bfe5e22..40307c5 100644 --- a/src/main/java/com/example/liteflow/mysql/model/CommonResult.java +++ b/src/main/java/com/example/liteflow/mysql/model/CommonResult.java @@ -19,10 +19,6 @@ public class CommonResult { private T data; - public CommonResult(Integer code, String message) { - this(code, message, null); - } - public static CommonResult fail(String message) { CommonResult commonResult = new CommonResult(); commonResult.setCode(999); diff --git a/src/main/java/com/example/liteflow/mysql/runner/AviatorEvaluatorRunner.java b/src/main/java/com/example/liteflow/mysql/runner/AviatorEvaluatorRunner.java index 7b23714..53e903e 100644 --- a/src/main/java/com/example/liteflow/mysql/runner/AviatorEvaluatorRunner.java +++ b/src/main/java/com/example/liteflow/mysql/runner/AviatorEvaluatorRunner.java @@ -1,7 +1,6 @@ package com.example.liteflow.mysql.runner; import com.example.liteflow.mysql.service.BaseChainService; -import com.yomahub.liteflow.core.FlowExecutor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; @@ -19,7 +18,7 @@ public class AviatorEvaluatorRunner implements CommandLineRunner { private BaseChainService baseChainService; @Override - public void run(String... args) throws Exception { + public void run(String... args) { baseChainService.initDynamicChain(); baseChainService.initMainChain(); } diff --git a/src/main/java/com/example/liteflow/mysql/service/BaseChainService.java b/src/main/java/com/example/liteflow/mysql/service/BaseChainService.java index d06d42d..1dc147b 100644 --- a/src/main/java/com/example/liteflow/mysql/service/BaseChainService.java +++ b/src/main/java/com/example/liteflow/mysql/service/BaseChainService.java @@ -2,11 +2,8 @@ package com.example.liteflow.mysql.service; import com.baomidou.mybatisplus.extension.service.IService; import com.example.liteflow.mysql.entity.BaseChainEntity; -import com.example.liteflow.mysql.model.BaseCenter; import com.example.liteflow.mysql.model.CommonResult; -import java.util.List; - /** * @author 75349 * @description 针对表【base_chain】的数据库操作Service diff --git a/src/main/java/com/example/liteflow/mysql/service/impl/BaseChainServiceImpl.java b/src/main/java/com/example/liteflow/mysql/service/impl/BaseChainServiceImpl.java index b20943b..3e57de1 100644 --- a/src/main/java/com/example/liteflow/mysql/service/impl/BaseChainServiceImpl.java +++ b/src/main/java/com/example/liteflow/mysql/service/impl/BaseChainServiceImpl.java @@ -65,87 +65,95 @@ public class BaseChainServiceImpl extends ServiceImpl nodeList = baseNodeService.list(nodeQueryWrapper); templateAndNodeMap.put(template, nodeList); }); - for (Map.Entry> entry : templateAndNodeMap.entrySet()) { - BaseTemplateEntity templateEntity = entry.getKey(); - String templateName = templateEntity.getTemplateName(); - String templateId = templateEntity.getId(); - List nodeList = entry.getValue(); - // 将所有节点注入 - nodeList.forEach(node -> { - String nodeType = node.getNodeType(); - String nodeId = node.getNodeId(); - String nodeName = node.getNodeName(); - String nodeClass = node.getNodeClass(); - if (NodeEnum.CommonNode.getName().equals(nodeType)) { - LiteFlowNodeBuilder.createCommonNode() - .setId(nodeId) - .setName(nodeName) - .setClazz(nodeClass) - .build(); - } else if (NodeEnum.IfNode.getName().equals(nodeType)) { - LiteFlowNodeBuilder.createIfNode() - .setId(nodeId) - .setName(nodeName) - .setClazz(nodeClass) - .build(); - } - }); - // 输出节点 - Map commonNodeMap = nodeList.stream() - .filter(node -> NodeEnum.CommonNode.getName().equals(node.getNodeType())) - .collect(Collectors.toMap(BaseNodeEntity::getId, BaseNodeEntity -> BaseNodeEntity)); - // 判断节点 - List ifNodeList = nodeList.stream().filter(node -> NodeEnum.IfNode.getName().equals(node.getNodeType())).collect(Collectors.toList()); - StringBuilder stringBuilder = new StringBuilder(); - int leftBracesNum = 0; - int num = 0; - for (BaseNodeEntity ifNode : ifNodeList) { - num++; - leftBracesNum++; - stringBuilder.append("IF("); - String ifNodeId = ifNode.getNodeId(); - String nodeContentId = ifNode.getNodeContentId(); - BaseNodeEntity commonNode = commonNodeMap.get(nodeContentId); - if (ObjectUtil.isNotNull(commonNode)) { - String commonNodeId = commonNode.getNodeId(); - stringBuilder.append(ifNodeId).append(",").append(commonNodeId); - } else { - stringBuilder.append(ifNodeId).append(",defaultOutput"); - } - if (num != ifNodeList.size()) { - stringBuilder.append(","); - } else { - stringBuilder.append(",defaultOutput"); - } - } - for (int i = 0; i < leftBracesNum; i++) { - stringBuilder.append(")"); - } - log.info("templateName = {}, stringBuilder = {}", templateName, stringBuilder); - BaseChainEntity baseChainEntity = new BaseChainEntity(); - baseChainEntity.setTemplateId(templateId); - baseChainEntity.setChainName(templateName); - baseChainEntity.setElData(stringBuilder.toString()); - if (!FlowBus.containChain(templateName)) { - LiteFlowChainELBuilder.createChain() - .setChainId(templateName) - .setEL(stringBuilder.toString()) - .build(); - flowExecutor.reloadRule(); - } - LambdaUpdateWrapper baseChainQueryWrapper = new LambdaUpdateWrapper<>(); - baseChainQueryWrapper.eq(BaseChainEntity::getTemplateId, templateId) - .eq(BaseChainEntity::getEnableMark, EnableMarkEnum.Enable.getValue()); - BaseChainEntity checkExists = this.getOne(baseChainQueryWrapper); - if (ObjectUtil.isNull(checkExists)) { - this.save(baseChainEntity); - } - } + this.generateOrUpdateChain(templateAndNodeMap); } this.initMainChain(); return CommonResult.success("生成链路成功", this.list()); } + private void generateOrUpdateChain(Map> templateAndNodeMap) { + for (Map.Entry> entry : templateAndNodeMap.entrySet()) { + BaseTemplateEntity templateEntity = entry.getKey(); + String templateName = templateEntity.getTemplateName(); + String templateId = templateEntity.getId(); + List nodeList = entry.getValue(); + // 将所有节点注入 + nodeList.forEach(node -> { + String nodeType = node.getNodeType(); + String nodeId = node.getNodeId(); + String nodeName = node.getNodeName(); + String nodeClass = node.getNodeClass(); + if (NodeEnum.CommonNode.getName().equals(nodeType)) { + LiteFlowNodeBuilder.createCommonNode() + .setId(nodeId) + .setName(nodeName) + .setClazz(nodeClass) + .build(); + } else if (NodeEnum.IfNode.getName().equals(nodeType)) { + LiteFlowNodeBuilder.createIfNode() + .setId(nodeId) + .setName(nodeName) + .setClazz(nodeClass) + .build(); + } + }); + // 输出节点 + Map commonNodeMap = nodeList.stream() + .filter(node -> NodeEnum.CommonNode.getName().equals(node.getNodeType())) + .collect(Collectors.toMap(BaseNodeEntity::getId, BaseNodeEntity -> BaseNodeEntity)); + // 判断节点 + List ifNodeList = nodeList.stream().filter(node -> NodeEnum.IfNode.getName().equals(node.getNodeType())).collect(Collectors.toList()); + StringBuilder stringBuilder = new StringBuilder(); + int leftBracesNum = 0; + int num = 0; + for (BaseNodeEntity ifNode : ifNodeList) { + num++; + leftBracesNum++; + stringBuilder.append("IF("); + String ifNodeId = ifNode.getNodeId(); + String nodeContentId = ifNode.getNodeContentId(); + BaseNodeEntity commonNode = commonNodeMap.get(nodeContentId); + if (ObjectUtil.isNotNull(commonNode)) { + String commonNodeId = commonNode.getNodeId(); + stringBuilder.append(ifNodeId).append(",").append(commonNodeId); + } else { + stringBuilder.append(ifNodeId).append(",defaultOutput"); + } + if (num != ifNodeList.size()) { + stringBuilder.append(","); + } else { + stringBuilder.append(",defaultOutput"); + } + } + for (int i = 0; i < leftBracesNum; i++) { + stringBuilder.append(")"); + } + log.info("templateName = {}, stringBuilder = {}", templateName, stringBuilder); + BaseChainEntity baseChainEntity = new BaseChainEntity(); + baseChainEntity.setTemplateId(templateId); + baseChainEntity.setChainName(templateName); + baseChainEntity.setElData(stringBuilder.toString()); + if (!FlowBus.containChain(templateName)) { + LiteFlowChainELBuilder.createChain() + .setChainId(templateName) + .setEL(stringBuilder.toString()) + .build(); + flowExecutor.reloadRule(); + } + LambdaUpdateWrapper baseChainQueryWrapper = new LambdaUpdateWrapper<>(); + baseChainQueryWrapper.eq(BaseChainEntity::getTemplateId, templateId) + .eq(BaseChainEntity::getEnableMark, EnableMarkEnum.Enable.getValue()); + BaseChainEntity checkExists = this.getOne(baseChainQueryWrapper); + if (ObjectUtil.isNull(checkExists)) { + this.save(baseChainEntity); + } else { + checkExists.setChainName(templateName); + checkExists.setElData(stringBuilder.toString()); + this.updateById(checkExists); + } + } + } + @Override public void initDynamicChain() { log.info("进入【初始化链路】方法"); @@ -166,86 +174,7 @@ public class BaseChainServiceImpl extends ServiceImpl> entry : templateAndNodeMap.entrySet()) { - BaseTemplateEntity templateEntity = entry.getKey(); - String templateName = templateEntity.getTemplateName(); - String templateId = templateEntity.getId(); - List nodeList = entry.getValue(); - // 将所有节点注入 - nodeList.forEach(node -> { - String nodeType = node.getNodeType(); - String nodeId = node.getNodeId(); - String nodeName = node.getNodeName(); - String nodeClass = node.getNodeClass(); - if (NodeEnum.CommonNode.getName().equals(nodeType)) { - LiteFlowNodeBuilder.createCommonNode() - .setId(nodeId) - .setName(nodeName) - .setClazz(nodeClass) - .build(); - } else if (NodeEnum.IfNode.getName().equals(nodeType)) { - LiteFlowNodeBuilder.createIfNode() - .setId(nodeId) - .setName(nodeName) - .setClazz(nodeClass) - .build(); - } - }); - // 输出节点 - Map commonNodeMap = nodeList.stream() - .filter(node -> NodeEnum.CommonNode.getName().equals(node.getNodeType())) - .collect(Collectors.toMap(BaseNodeEntity::getId, BaseNodeEntity -> BaseNodeEntity)); - // 判断节点 - List ifNodeList = nodeList.stream().filter(node -> NodeEnum.IfNode.getName().equals(node.getNodeType())).collect(Collectors.toList()); - StringBuilder stringBuilder = new StringBuilder(); - int leftBracesNum = 0; - int num = 0; - for (BaseNodeEntity ifNode : ifNodeList) { - num++; - leftBracesNum++; - stringBuilder.append("IF("); - String ifNodeId = ifNode.getNodeId(); - String nodeContentId = ifNode.getNodeContentId(); - BaseNodeEntity commonNode = commonNodeMap.get(nodeContentId); - if (ObjectUtil.isNotNull(commonNode)) { - String commonNodeId = commonNode.getNodeId(); - stringBuilder.append(ifNodeId).append(",").append(commonNodeId); - } else { - stringBuilder.append(ifNodeId).append(",defaultOutput"); - } - if (num != ifNodeList.size()) { - stringBuilder.append(","); - } else { - stringBuilder.append(",defaultOutput"); - } - } - for (int i = 0; i < leftBracesNum; i++) { - stringBuilder.append(")"); - } - log.info("templateName = {}, stringBuilder = {}", templateName, stringBuilder); - BaseChainEntity baseChainEntity = new BaseChainEntity(); - baseChainEntity.setTemplateId(templateId); - baseChainEntity.setChainName(templateName); - baseChainEntity.setElData(stringBuilder.toString()); - if (!FlowBus.containChain(templateName)) { - LiteFlowChainELBuilder.createChain() - .setChainId(templateName) - .setEL(stringBuilder.toString()) - .build(); - flowExecutor.reloadRule(); - } - LambdaUpdateWrapper baseChainQueryWrapper = new LambdaUpdateWrapper<>(); - baseChainQueryWrapper.eq(BaseChainEntity::getTemplateId, templateId) - .eq(BaseChainEntity::getEnableMark, EnableMarkEnum.Enable.getValue()); - BaseChainEntity checkExists = this.getOne(baseChainQueryWrapper); - if (ObjectUtil.isNull(checkExists)) { - this.save(baseChainEntity); - } else { - checkExists.setChainName(templateName); - checkExists.setElData(stringBuilder.toString()); - this.updateById(checkExists); - } - } + this.generateOrUpdateChain(templateAndNodeMap); } } diff --git a/src/main/java/com/example/liteflow/mysql/service/impl/BaseNodeServiceImpl.java b/src/main/java/com/example/liteflow/mysql/service/impl/BaseNodeServiceImpl.java index f1d99ae..8ddd373 100644 --- a/src/main/java/com/example/liteflow/mysql/service/impl/BaseNodeServiceImpl.java +++ b/src/main/java/com/example/liteflow/mysql/service/impl/BaseNodeServiceImpl.java @@ -6,13 +6,13 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.liteflow.mysql.entity.BaseNodeEntity; import com.example.liteflow.mysql.entity.BaseTemplateEntity; import com.example.liteflow.mysql.enums.EnableMarkEnum; import com.example.liteflow.mysql.enums.NodeEnum; +import com.example.liteflow.mysql.mapper.BaseNodeMapper; import com.example.liteflow.mysql.model.CommonResult; import com.example.liteflow.mysql.model.OutputFrom; import com.example.liteflow.mysql.model.node.BaseNodeVO; @@ -20,7 +20,6 @@ import com.example.liteflow.mysql.model.node.CreateNodeFrom; import com.example.liteflow.mysql.model.node.UpdateNodeFrom; import com.example.liteflow.mysql.model.role.Role; import com.example.liteflow.mysql.service.BaseNodeService; -import com.example.liteflow.mysql.mapper.BaseNodeMapper; import com.example.liteflow.mysql.service.BaseTemplateService; import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.flow.element.Node; diff --git a/src/main/java/com/example/liteflow/mysql/service/impl/BaseTemplateServiceImpl.java b/src/main/java/com/example/liteflow/mysql/service/impl/BaseTemplateServiceImpl.java index 55e4a17..1328595 100644 --- a/src/main/java/com/example/liteflow/mysql/service/impl/BaseTemplateServiceImpl.java +++ b/src/main/java/com/example/liteflow/mysql/service/impl/BaseTemplateServiceImpl.java @@ -5,16 +5,15 @@ import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.liteflow.mysql.entity.BaseTemplateEntity; +import com.example.liteflow.mysql.mapper.BaseTemplateMapper; import com.example.liteflow.mysql.model.CommonResult; import com.example.liteflow.mysql.model.baseTemplate.BaseTemplateVO; import com.example.liteflow.mysql.model.baseTemplate.CreateTemplateFrom; import com.example.liteflow.mysql.model.baseTemplate.UpdateTemplateFrom; import com.example.liteflow.mysql.service.BaseTemplateService; -import com.example.liteflow.mysql.mapper.BaseTemplateMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import javax.smartcardio.CommandAPDU; import java.util.List; import java.util.stream.Collectors; diff --git a/src/test/java/MyTest.java b/src/test/java/MyTest.java index c4abbc9..bf02348 100644 --- a/src/test/java/MyTest.java +++ b/src/test/java/MyTest.java @@ -13,6 +13,7 @@ import org.assertj.core.util.Lists; import org.junit.Test; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List;