diff --git a/ruoyi-modules/ruoyi-workflow/pom.xml b/ruoyi-modules/ruoyi-workflow/pom.xml
index ca167ecc8..fafc0c897 100644
--- a/ruoyi-modules/ruoyi-workflow/pom.xml
+++ b/ruoyi-modules/ruoyi-workflow/pom.xml
@@ -17,8 +17,7 @@
- 2.11.0
- 1.10
+ 6.8.0
@@ -35,49 +34,25 @@
-
- org.flowable
- flowable-ui-modeler-rest
- 6.8.0
-
org.flowable
flowable-image-generator
+
+
+ org.flowable
+ flowable-json-converter
+ ${flowable.version}
+
+
org.dromara
ruoyi-system
-
-
- org.apache.xmlgraphics
- batik-all
- ${batik.version}
-
-
- xalan
- xalan
-
-
-
-
-
-
- xerces
- xercesImpl
- ${xerces.version}
-
-
- org.flowable
- flowable-json-converter
- 6.8.0
- compile
-
-
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java
index 020aaa1a3..70032f85a 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActModelServiceImpl.java
@@ -108,7 +108,7 @@ public class ActModelServiceImpl implements IActModelService {
String description = modelBo.getDescription();
Model checkModel = repositoryService.createModelQuery().modelKey(key).modelTenantId(LoginHelper.getTenantId()).singleResult();
if (ObjectUtil.isNotNull(checkModel)) {
- throw new ServiceException("模型key已存在!");
+ throw new ServiceException("模型key已存在!");
}
// 1. 初始空的模型
Model model = repositoryService.newModel();
@@ -213,13 +213,17 @@ public class ActModelServiceImpl implements IActModelService {
String key = values.getFirst("key");
List list = repositoryService.createModelQuery().modelKey(key).modelTenantId(LoginHelper.getTenantId()).list();
list.stream().filter(e -> !e.getId().equals(model.getId())).findFirst().ifPresent(e -> {
- throw new ServiceException("模型key已存在!");
+ throw new ServiceException("模型key已存在!");
});
model.setKey(key);
repositoryService.saveModel(model);
byte[] xmlBytes = WorkflowUtils.bpmnJsonToXmlBytes(Objects.requireNonNull(values.getFirst("json_xml")).getBytes(StandardCharsets.UTF_8));
if (ArrayUtil.isEmpty(xmlBytes)) {
- throw new ServiceException("模型不能为空!");
+ throw new ServiceException("模型不能为空!");
+ }
+ byte[] toXmlBytes = WorkflowUtils.bpmnJsonToXmlBytes(xmlBytes);
+ if (ArrayUtil.isEmpty(toXmlBytes)) {
+ throw new ServiceException("模型不能为空,请至少设计一条主线流程!");
}
repositoryService.addModelEditorSource(model.getId(), xmlBytes);
return true;
@@ -244,6 +248,10 @@ public class ActModelServiceImpl implements IActModelService {
if (ArrayUtil.isEmpty(xmlBytes)) {
throw new ServiceException("模型数据为空,请先设计流程定义模型,再进行部署!");
}
+ byte[] toXmlBytes = WorkflowUtils.bpmnJsonToXmlBytes(xmlBytes);
+ if (ArrayUtil.isEmpty(toXmlBytes)) {
+ throw new ServiceException("模型不能为空,请至少设计一条主线流程!");
+ }
// 查询模型的基本信息
Model model = repositoryService.getModel(id);
// xml资源的名称 ,对应act_ge_bytearray表中的name_字段
@@ -287,11 +295,17 @@ public class ActModelServiceImpl implements IActModelService {
String zipName = "模型不存在";
//查询模型基本信息
Model model = repositoryService.getModel(modelId);
+ byte[] xmlBytes = repositoryService.getModelEditorSource(modelId);
if (ObjectUtil.isNotNull(model)) {
- // 查询流程定义模型的json字节码
- byte[] xmlBytes = repositoryService.getModelEditorSource(modelId);
- if (ArrayUtil.isEmpty(xmlBytes)) {
+ byte[] toXmlBytes = WorkflowUtils.bpmnJsonToXmlBytes(xmlBytes);
+ if (ArrayUtil.isEmpty(toXmlBytes)) {
+ zipName = "模型不能为空,请至少设计一条主线流程!";
+ zos.putNextEntry(new ZipEntry(zipName + ".txt"));
+ zos.write(zipName.getBytes(StandardCharsets.UTF_8));
+ } else if (ArrayUtil.isEmpty(xmlBytes)) {
zipName = "模型数据为空,请先设计流程定义模型,再进行部署!";
+ zos.putNextEntry(new ZipEntry(zipName + ".txt"));
+ zos.write(zipName.getBytes(StandardCharsets.UTF_8));
} else {
String fileName = model.getName() + "-" + model.getKey();
// 压缩包文件名