From 83334357704fa6e04328704ab481b561bd60570f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Mon, 16 Dec 2024 12:36:56 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=AF=BC=E5=85=A5=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=20=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E7=B1=BB?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FlwDefinitionController.java | 4 ++-- .../service/IFlwDefinitionService.java | 2 +- .../service/impl/FlwDefinitionServiceImpl.java | 18 ++++++++++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java index 2030f280c..dcda2ac54 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java @@ -143,8 +143,8 @@ public class FlwDefinitionController extends BaseController { @Log(title = "流程定义", businessType = BusinessType.IMPORT) @PostMapping("/importDef") @Transactional(rollbackFor = Exception.class) - public R importDef(MultipartFile file) { - return R.ok(iFlwDefinitionService.importXml(file)); + public R importDef(MultipartFile file, String category) { + return R.ok(iFlwDefinitionService.importXml(file, category)); } /** diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java index 7386db256..9141bbfa1 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwDefinitionService.java @@ -48,7 +48,7 @@ public interface IFlwDefinitionService { * @param file 文件 * @return 结果 */ - boolean importXml(MultipartFile file); + boolean importXml(MultipartFile file, String category); /** * 删除流程定义 diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java index eff1201d7..c2bcece55 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java @@ -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 allNodes = combine.getAllNodes(); + // 所有的流程连线 + List allSkips = combine.getAllSkips(); + ReflectUtils.invoke(defService, "insertFlow", definition, allNodes, allSkips); } catch (Exception e) { log.error("导入流程定义错误: {}", e.getMessage(), e); throw new RuntimeException(e);