update 更新warm-flow版本到1.6.7-M1

This commit is contained in:
AprilWind
2025-02-25 22:18:58 +08:00
parent 7b679e60e0
commit b537899e62
10 changed files with 278 additions and 5 deletions

View File

@ -1,5 +1,6 @@
package org.dromara.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -8,6 +9,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.domain.dto.DictDataDTO;
import org.dromara.common.core.domain.dto.DictTypeDTO;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.MapstructUtils;
@ -249,10 +252,40 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService, DictService
}
}
/**
* 获取字典下所有的字典值与标签
*
* @param dictType 字典类型
* @return dictValue为keydictLabel为值组成的Map
*/
@Override
public Map<String, String> getAllDictByDictType(String dictType) {
List<SysDictDataVo> list = selectDictDataByType(dictType);
List<SysDictDataVo> list = SpringUtils.getAopProxy(this).selectDictDataByType(dictType);
return StreamUtils.toMap(list, SysDictDataVo::getDictValue, SysDictDataVo::getDictLabel);
}
/**
* 根据字典类型查询详细信息
*
* @param dictType 字典类型
* @return 字典类型详细信息
*/
@Override
public DictTypeDTO getDictTypeDto(String dictType) {
SysDictTypeVo vo = SpringUtils.getAopProxy(this).selectDictTypeByType(dictType);
return BeanUtil.toBean(vo, DictTypeDTO.class);
}
/**
* 根据字典类型查询字典数据列表
*
* @param dictType 字典类型
* @return 字典数据列表
*/
@Override
public List<DictDataDTO> getDictDataDto(String dictType) {
List<SysDictDataVo> list = SpringUtils.getAopProxy(this).selectDictDataByType(dictType);
return BeanUtil.copyToList(list, DictDataDTO.class);
}
}

View File

@ -0,0 +1,125 @@
package org.dromara.workflow.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.dto.DictTypeDTO;
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.warm.flow.ui.service.NodeExtService;
import org.dromara.warm.flow.ui.vo.NodeExt;
import org.dromara.workflow.common.ConditionalOnEnable;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 流程设计器-节点扩展属性
*
* @author AprilWind
*/
@ConditionalOnEnable
@Slf4j
@RequiredArgsConstructor
@Service
public class FlwNodeExtServiceImpl implements NodeExtService {
/**
* 权限页
*/
private static final String BUTTON_PERMISSION_TAB = "wf_button_tab";
/**
* 权限页页签名称
*/
private static final String LIMITS_OF_AUTHORITY = "权限";
/**
* 字典类型逗号分隔
*/
private static final String DICT_TYPES = "wf_button_permission";
/**
* 基础设置
*/
private static final int TYPE_BASE_SETTING = 1;
/**
* 新页签
*/
private static final int TYPE_NEW_TAB = 2;
private final DictService dictService;
/**
* 获取节点扩展属性
*
* @return 结果
*/
@Override
public List<NodeExt> getNodeExt() {
List<NodeExt> nodeExtList = new ArrayList<>();
// 构建按钮权限页面
nodeExtList.add(buildNodeExt(BUTTON_PERMISSION_TAB, TYPE_NEW_TAB, DICT_TYPES));
return nodeExtList;
}
/**
* 构建一个 NodeExt 对象
*
* @param code 编码此json中唯一
* @param type 节点类型1基础设置2新页签
* @return 返回构建好的 NodeExt 对象
*/
private NodeExt buildNodeExt(String code, int type, String dictTypes) {
NodeExt nodeExt = new NodeExt();
// 从系统参数配置里面获取信息构建新页面或者基础设置
// 编码此json中唯一
nodeExt.setCode(code);
// 1基础设置 2新页签
nodeExt.setType(type);
// 名称如果type为新页签时作为页签名称
nodeExt.setName(LIMITS_OF_AUTHORITY);
nodeExt.setChilds(StringUtils.splitList(dictTypes)
.stream().map(this::buildChildNode).toList()
);
return nodeExt;
}
/**
* 构建一个 ChildNode 对象
*
* @param dictType 字典类型
* @return 返回构建好的 ChildNode 对象
*/
private NodeExt.ChildNode buildChildNode(String dictType) {
NodeExt.ChildNode childNode = new NodeExt.ChildNode();
if (StringUtils.isBlank(dictType)) {
return childNode;
}
DictTypeDTO dictTypeDTO = dictService.getDictTypeDto(dictType);
if (ObjectUtil.isNull(dictTypeDTO)) {
return childNode;
}
// 编码此json中唯一
childNode.setCode(dictType);
// label名称
childNode.setLabel(dictTypeDTO.getDictName());
// 描述
childNode.setDesc(dictTypeDTO.getRemark());
// 1输入框 2输入框 3下拉框 4选择框
childNode.setType(4);
// 是否必填
childNode.setMust(false);
// 是否多选
childNode.setMultiple(true);
// 字典,下拉框和复选框时用到
childNode.setDict(dictService.getDictDataDto(dictType)
.stream().map(x ->
new NodeExt.DictItem(x.getDictLabel(), x.getDictValue(), Convert.toBool(x.getIsDefault(), false))
).toList());
return childNode;
}
}