From c21e0db622ec3693b22a301070eadb2df6238fbd Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Fri, 23 Aug 2024 23:47:50 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=94=99=E8=AF=AF=EF=BC=8C=E6=B5=81=E7=A8=8B=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FlwDefinitionController.java | 6 ++--- .../service/IFlwDefinitionService.java | 9 +++++++ .../impl/FlwDefinitionServiceImpl.java | 25 +++++++++++++++++++ .../mapper/workflow/FlwTaskMapper.xml | 11 ++++---- 4 files changed, 41 insertions(+), 10 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 c3e4b6459..691f7b0dd 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 @@ -140,14 +140,12 @@ public class FlwDefinitionController extends BaseController { * 导入流程定义 * * @param file 文件 - * @throws Exception 异常 */ @Log(title = "流程定义", businessType = BusinessType.IMPORT) @PostMapping("/importDefinition") @Transactional(rollbackFor = Exception.class) - public R importDefinition(MultipartFile file) throws Exception { - defService.importXml(file.getInputStream()); - return R.ok(); + public R importDefinition(MultipartFile file) { + return R.ok(iFlwDefinitionService.importXml(file)); } /** 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 01b82f0b0..b7e022d8b 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 @@ -6,6 +6,7 @@ import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.workflow.domain.vo.FlowDefinitionVo; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.List; @@ -41,4 +42,12 @@ public interface IFlwDefinitionService { * @throws IOException 异常 */ void exportDefinition(Long id, HttpServletResponse response) throws IOException; + + /** + * 导入流程定义 + * + * @param file 文件 + * @return 结果 + */ + boolean importXml(MultipartFile file); } 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 1cc3b45d6..c878a3425 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 @@ -1,6 +1,7 @@ package org.dromara.workflow.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.warm.flow.core.entity.Definition; import com.warm.flow.core.enums.PublishStatus; @@ -14,11 +15,13 @@ import lombok.extern.slf4j.Slf4j; import org.dom4j.Document; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; +import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.workflow.domain.vo.FlowDefinitionVo; import org.dromara.workflow.service.IFlwDefinitionService; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.Arrays; @@ -67,6 +70,28 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService { return BeanUtil.copyToList(list, FlowDefinitionVo.class); } + /** + * 导入流程定义 + * + * @param file 文件 + */ + @Override + public boolean importXml(MultipartFile file) { + try { + Definition definition = defService.importXml(file.getInputStream()); + List list = flowDefinitionMapper.selectList( + new LambdaQueryWrapper().eq(FlowDefinition::getFlowCode, definition.getFlowCode())); + List definitionList = StreamUtils.filter(list, item -> !item.getId().equals(definition.getId())); + if (CollUtil.isEmpty(definitionList)) { + defService.publish(definition.getId()); + } + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + return true; + } + /** * 导出流程定义 * diff --git a/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml index b285b22a0..bd4b32ad8 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml +++ b/ruoyi-modules/ruoyi-workflow/src/main/resources/mapper/workflow/FlwTaskMapper.xml @@ -17,8 +17,8 @@ - - + + @@ -74,8 +74,8 @@ i.flow_status, d.flow_name, d.flow_code, - d.from_custom, - d.from_path, + d.form_custom, + d.form_path, uu.processed_by FROM flow_task AS t LEFT JOIN flow_user uu ON uu.associated = t.id @@ -105,8 +105,7 @@ t.update_time, t.tenant_id, i.business_id, - i.node_name, - d.from_path fromPath, + d.form_path fromPath, d.flow_name, d.flow_code from ( SELECT MAX(id) as id