gssong
2024-04-26 64dccb192ca97c6cce06ed9e3e8f360d71126b27
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessDefinitionServiceImpl.java
@@ -9,7 +9,6 @@
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.apache.commons.io.IOUtils;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
@@ -37,7 +36,6 @@
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.impl.bpmn.deployer.ResourceNameUtil;
import org.flowable.engine.repository.*;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -45,7 +43,10 @@
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -161,7 +162,7 @@
    @Override
    public String definitionImage(String processDefinitionId) {
        InputStream inputStream = repositoryService.getProcessDiagram(processDefinitionId);
        return Base64.encode(IOUtils.toByteArray(inputStream));
        return Base64.encode(IoUtil.readBytes(inputStream));
    }
    /**
@@ -173,13 +174,8 @@
    public String definitionXml(String processDefinitionId) {
        StringBuilder xml = new StringBuilder();
        ProcessDefinition processDefinition = repositoryService.getProcessDefinition(processDefinitionId);
        InputStream inputStream;
        try {
            inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getResourceName());
            xml.append(IOUtils.toString(inputStream, StandardCharsets.UTF_8));
        } catch (IOException e) {
            e.printStackTrace();
        }
        InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getResourceName());
        xml.append(IoUtil.read(inputStream, StandardCharsets.UTF_8));
        return xml.toString();
    }
@@ -386,12 +382,12 @@
        if (CollUtil.isEmpty(wfDefinitionConfigs)) {
            ProcessDefinition processDefinition = QueryUtils.definitionQuery().processDefinitionKey("leave1").latestVersion().singleResult();
            if (processDefinition != null) {
                WfDefinitionConfigBo wfFormDefinition = new WfDefinitionConfigBo();
                wfFormDefinition.setDefinitionId(processDefinition.getId());
                wfFormDefinition.setProcessKey(processDefinition.getKey());
                wfFormDefinition.setTableName("test_leave");
                wfFormDefinition.setVersion(processDefinition.getVersion());
                iWfDefinitionConfigService.saveOrUpdate(wfFormDefinition);
                WfDefinitionConfigBo wfDefinitionConfigBo = new WfDefinitionConfigBo();
                wfDefinitionConfigBo.setDefinitionId(processDefinition.getId());
                wfDefinitionConfigBo.setProcessKey(processDefinition.getKey());
                wfDefinitionConfigBo.setTableName("test_leave");
                wfDefinitionConfigBo.setVersion(processDefinition.getVersion());
                iWfDefinitionConfigService.saveOrUpdate(wfDefinitionConfigBo);
            }
        }
@@ -409,13 +405,13 @@
            WfDefinitionConfigVo definitionVo = iWfDefinitionConfigService.getByDefId(oldProcessDefinition.getId());
            if (definitionVo != null) {
                iWfDefinitionConfigService.deleteByDefIds(Collections.singletonList(oldProcessDefinition.getId()));
                WfDefinitionConfigBo wfFormDefinition = new WfDefinitionConfigBo();
                wfFormDefinition.setDefinitionId(definition.getId());
                wfFormDefinition.setProcessKey(definition.getKey());
                wfFormDefinition.setTableName(definitionVo.getTableName());
                wfFormDefinition.setVersion(definition.getVersion());
                wfFormDefinition.setRemark(definitionVo.getRemark());
                iWfDefinitionConfigService.saveOrUpdate(wfFormDefinition);
                WfDefinitionConfigBo wfDefinitionConfigBo = new WfDefinitionConfigBo();
                wfDefinitionConfigBo.setDefinitionId(definition.getId());
                wfDefinitionConfigBo.setProcessKey(definition.getKey());
                wfDefinitionConfigBo.setTableName(definitionVo.getTableName());
                wfDefinitionConfigBo.setVersion(definition.getVersion());
                wfDefinitionConfigBo.setRemark(definitionVo.getRemark());
                iWfDefinitionConfigService.saveOrUpdate(wfDefinitionConfigBo);
            }
        }
        //更新流程节点配置表单