update 导入流程 支持自定义类别

This commit is contained in:
疯狂的狮子Li 2024-12-16 12:36:56 +08:00
parent 903b289591
commit 8333435770
3 changed files with 19 additions and 5 deletions

View File

@ -143,8 +143,8 @@ public class FlwDefinitionController extends BaseController {
@Log(title = "流程定义", businessType = BusinessType.IMPORT)
@PostMapping("/importDef")
@Transactional(rollbackFor = Exception.class)
public R<Boolean> importDef(MultipartFile file) {
return R.ok(iFlwDefinitionService.importXml(file));
public R<Boolean> importDef(MultipartFile file, String category) {
return R.ok(iFlwDefinitionService.importXml(file, category));
}
/**

View File

@ -48,7 +48,7 @@ public interface IFlwDefinitionService {
* @param file 文件
* @return 结果
*/
boolean importXml(MultipartFile file);
boolean importXml(MultipartFile file, String category);
/**
* 删除流程定义

View File

@ -15,9 +15,15 @@ import org.dom4j.io.XMLWriter;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.reflect.ReflectUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.warm.flow.core.dto.FlowCombine;
import org.dromara.warm.flow.core.entity.Definition;
import org.dromara.warm.flow.core.entity.Node;
import org.dromara.warm.flow.core.entity.Skip;
import org.dromara.warm.flow.core.service.DefService;
import org.dromara.warm.flow.core.utils.FlowConfigUtil;
import org.dromara.warm.flow.orm.entity.FlowDefinition;
import org.dromara.warm.flow.orm.entity.FlowHisTask;
import org.dromara.warm.flow.orm.mapper.FlowDefinitionMapper;
@ -85,9 +91,17 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService {
* @param file 文件
*/
@Override
public boolean importXml(MultipartFile file) {
public boolean importXml(MultipartFile file, String category) {
try {
defService.importXml(file.getInputStream());
FlowCombine combine = FlowConfigUtil.readConfig(file.getInputStream());
// 流程定义
Definition definition = combine.getDefinition();
definition.setCategory(category);
// 所有的流程节点
List<Node> allNodes = combine.getAllNodes();
// 所有的流程连线
List<Skip> allSkips = combine.getAllSkips();
ReflectUtils.invoke(defService, "insertFlow", definition, allNodes, allSkips);
} catch (Exception e) {
log.error("导入流程定义错误: {}", e.getMessage(), e);
throw new RuntimeException(e);