1.修改参数错误

2.补充规则转换
This commit is contained in:
chenweilong 2022-12-13 11:18:06 +08:00
parent a37e5df823
commit 82c79408bd
2 changed files with 21 additions and 3 deletions

View File

@ -10,9 +10,11 @@ import com.example.liteflow.mysql.entity.BaseDataEntity;
import com.example.liteflow.mysql.entity.DynamicScriptEntity; import com.example.liteflow.mysql.entity.DynamicScriptEntity;
import com.example.liteflow.mysql.enums.BaseDataAttributionEnum; import com.example.liteflow.mysql.enums.BaseDataAttributionEnum;
import com.example.liteflow.mysql.model.BaseCenter; import com.example.liteflow.mysql.model.BaseCenter;
import com.example.liteflow.mysql.model.role.Role;
import com.example.liteflow.mysql.service.BaseDataService; import com.example.liteflow.mysql.service.BaseDataService;
import com.example.liteflow.mysql.service.DynamicScriptService; 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.googlecode.aviator.AviatorEvaluator; import com.googlecode.aviator.AviatorEvaluator;
import com.yomahub.liteflow.core.NodeIfComponent; import com.yomahub.liteflow.core.NodeIfComponent;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -22,6 +24,8 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @author: 陈韦龙 * @author: 陈韦龙
@ -55,7 +59,12 @@ public class CostCenterCmp extends NodeIfComponent {
log.info("nodeId = {}, nodeName = {}", nodeId, nodeName); log.info("nodeId = {}, nodeName = {}", nodeId, nodeName);
DynamicScriptEntity dynamicScriptEntity = dynamicScriptService.getByScriptId(nodeId); DynamicScriptEntity dynamicScriptEntity = dynamicScriptService.getByScriptId(nodeId);
if (ObjectUtil.isNotNull(dynamicScriptEntity) && StrUtil.isNotBlank(dynamicScriptEntity.getScriptRole())) { if (ObjectUtil.isNotNull(dynamicScriptEntity) && StrUtil.isNotBlank(dynamicScriptEntity.getScriptRole())) {
String droolStr = dynamicScriptEntity.getScriptRole(); String scriptRole = dynamicScriptEntity.getScriptRole();
log.info("scriptRole = {}", scriptRole);
List<Role> roles = JSONUtil.toList(JSONUtil.parseArray(scriptRole), Role.class);
List<Map<String, Object>> collect = roles.stream().map(RoleUtil::parseRole).collect(Collectors.toList());
String droolStr = JSONUtil.toJsonStr(collect);
// 替换规则中的关键字 // 替换规则中的关键字
Field[] fields = ReflectUtil.getFields(BaseCenter.class); Field[] fields = ReflectUtil.getFields(BaseCenter.class);
for (Field field : fields) { for (Field field : fields) {

View File

@ -10,9 +10,11 @@ import com.example.liteflow.mysql.entity.BaseDataEntity;
import com.example.liteflow.mysql.entity.DynamicScriptEntity; import com.example.liteflow.mysql.entity.DynamicScriptEntity;
import com.example.liteflow.mysql.enums.BaseDataAttributionEnum; import com.example.liteflow.mysql.enums.BaseDataAttributionEnum;
import com.example.liteflow.mysql.model.BaseCenter; import com.example.liteflow.mysql.model.BaseCenter;
import com.example.liteflow.mysql.model.role.Role;
import com.example.liteflow.mysql.service.BaseDataService; import com.example.liteflow.mysql.service.BaseDataService;
import com.example.liteflow.mysql.service.DynamicScriptService; 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.googlecode.aviator.AviatorEvaluator; import com.googlecode.aviator.AviatorEvaluator;
import com.yomahub.liteflow.core.NodeIfComponent; import com.yomahub.liteflow.core.NodeIfComponent;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -20,6 +22,9 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @author: 陈韦龙 * @author: 陈韦龙
@ -48,13 +53,17 @@ public class ProfitCenterCmp extends NodeIfComponent {
log.info("nodeId = {}, nodeName = {}", nodeId, nodeName); log.info("nodeId = {}, nodeName = {}", nodeId, nodeName);
DynamicScriptEntity dynamicScriptEntity = dynamicScriptService.getByScriptId(nodeId); DynamicScriptEntity dynamicScriptEntity = dynamicScriptService.getByScriptId(nodeId);
if (ObjectUtil.isNotNull(dynamicScriptEntity) && StrUtil.isNotBlank(dynamicScriptEntity.getScriptRole())) { if (ObjectUtil.isNotNull(dynamicScriptEntity) && StrUtil.isNotBlank(dynamicScriptEntity.getScriptRole())) {
String droolStr = dynamicScriptEntity.getScriptRole(); String scriptRole = dynamicScriptEntity.getScriptRole();
log.info("scriptRole = {}", scriptRole);
List<Role> roles = JSONUtil.toList(JSONUtil.parseArray(scriptRole), Role.class);
List<Map<String, Object>> collect = roles.stream().map(RoleUtil::parseRole).collect(Collectors.toList());
String droolStr = JSONUtil.toJsonStr(collect);
// 替换规则中的关键字 // 替换规则中的关键字
Field[] fields = ReflectUtil.getFields(BaseCenter.class); Field[] fields = ReflectUtil.getFields(BaseCenter.class);
for (Field field : fields) { for (Field field : fields) {
Object fieldValue = ReflectUtil.getFieldValue(requestData, field); Object fieldValue = ReflectUtil.getFieldValue(requestData, field);
String name = field.getName(); String name = field.getName();
BaseDataEntity baseDataEntity = baseDataService.getByType(name, BaseDataAttributionEnum.costCenter.getAttribution()); BaseDataEntity baseDataEntity = baseDataService.getByType(name, BaseDataAttributionEnum.profitCenter.getAttribution());
if (ObjectUtil.isNotNull(baseDataEntity)) { if (ObjectUtil.isNotNull(baseDataEntity)) {
String content = baseDataEntity.getContent(); String content = baseDataEntity.getContent();
String contentName = baseDataEntity.getContentName(); String contentName = baseDataEntity.getContentName();