Commit 9ccdd30643b52ef3da25b1344779730f49a63b0d

Authored by YunaiV
1 parent f0103448

【代码优化】模型的 JSON 统一返回 string

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java
@@ -170,10 +170,10 @@ public class BpmModelServiceImpl implements BpmModelService { @@ -170,10 +170,10 @@ public class BpmModelServiceImpl implements BpmModelService {
170 // 1.4 校验任务分配规则已配置 170 // 1.4 校验任务分配规则已配置
171 taskCandidateInvoker.validateBpmnConfig(bpmnBytes); 171 taskCandidateInvoker.validateBpmnConfig(bpmnBytes);
172 // 1.5 获取仿钉钉流程设计器模型数据 172 // 1.5 获取仿钉钉流程设计器模型数据
173 - byte[] simpleBytes = getModelSimpleJson(model.getId()); 173 + String simpleJson = getModelSimpleJson(model.getId());
174 174
175 // 2.1 创建流程定义 175 // 2.1 创建流程定义
176 - String definitionId = processDefinitionService.createProcessDefinition(model, metaInfo, bpmnBytes, simpleBytes, form); 176 + String definitionId = processDefinitionService.createProcessDefinition(model, metaInfo, bpmnBytes, simpleJson, form);
177 177
178 // 2.2 将老的流程定义进行挂起。也就是说,只有最新部署的流程定义,才可以发起任务。 178 // 2.2 将老的流程定义进行挂起。也就是说,只有最新部署的流程定义,才可以发起任务。
179 updateProcessDefinitionSuspended(model.getDeploymentId()); 179 updateProcessDefinitionSuspended(model.getDeploymentId());
@@ -238,8 +238,8 @@ public class BpmModelServiceImpl implements BpmModelService { @@ -238,8 +238,8 @@ public class BpmModelServiceImpl implements BpmModelService {
238 public BpmSimpleModelNodeVO getSimpleModel(String modelId) { 238 public BpmSimpleModelNodeVO getSimpleModel(String modelId) {
239 Model model = validateModelExists(modelId); 239 Model model = validateModelExists(modelId);
240 // 通过 ACT_RE_MODEL 表 EDITOR_SOURCE_EXTRA_VALUE_ID_ ,获取仿钉钉快搭模型的 JSON 数据 240 // 通过 ACT_RE_MODEL 表 EDITOR_SOURCE_EXTRA_VALUE_ID_ ,获取仿钉钉快搭模型的 JSON 数据
241 - byte[] jsonBytes = getModelSimpleJson(model.getId());  
242 - return JsonUtils.parseObject(jsonBytes, BpmSimpleModelNodeVO.class); 241 + String json = getModelSimpleJson(model.getId());
  242 + return JsonUtils.parseObject(json, BpmSimpleModelNodeVO.class);
243 } 243 }
244 244
245 @Override 245 @Override
@@ -252,7 +252,7 @@ public class BpmModelServiceImpl implements BpmModelService { @@ -252,7 +252,7 @@ public class BpmModelServiceImpl implements BpmModelService {
252 // 2.2 保存 Bpmn XML 252 // 2.2 保存 Bpmn XML
253 updateModelBpmnXml(model.getId(), BpmnModelUtils.getBpmnXml(bpmnModel)); 253 updateModelBpmnXml(model.getId(), BpmnModelUtils.getBpmnXml(bpmnModel));
254 // 2.3 保存 JSON 数据 254 // 2.3 保存 JSON 数据
255 - saveModelSimpleJson(model.getId(), JsonUtils.toJsonByte(reqVO.getSimpleModel())); 255 + updateModelSimpleJson(model.getId(), reqVO.getSimpleModel());
256 } 256 }
257 257
258 /** 258 /**
@@ -291,15 +291,21 @@ public class BpmModelServiceImpl implements BpmModelService { @@ -291,15 +291,21 @@ public class BpmModelServiceImpl implements BpmModelService {
291 repositoryService.addModelEditorSource(id, StrUtil.utf8Bytes(bpmnXml)); 291 repositoryService.addModelEditorSource(id, StrUtil.utf8Bytes(bpmnXml));
292 } 292 }
293 293
294 - private byte[] getModelSimpleJson(String id) {  
295 - return repositoryService.getModelEditorSourceExtra(id); 294 + @SuppressWarnings("JavaExistingMethodCanBeUsed")
  295 + private String getModelSimpleJson(String id) {
  296 + byte[] bytes = repositoryService.getModelEditorSourceExtra(id);
  297 + if (ArrayUtil.isEmpty(bytes)) {
  298 + return null;
  299 + }
  300 + return StrUtil.utf8Str(bytes);
296 } 301 }
297 302
298 - private void saveModelSimpleJson(String id, byte[] jsonBytes) {  
299 - if (ArrayUtil.isEmpty(jsonBytes)) { 303 + private void updateModelSimpleJson(String id, BpmSimpleModelNodeVO node) {
  304 + if (node == null) {
300 return; 305 return;
301 } 306 }
302 - repositoryService.addModelEditorSourceExtra(id, jsonBytes); 307 + byte[] bytes = JsonUtils.toJsonByte(node);
  308 + repositoryService.addModelEditorSourceExtra(id, bytes);
303 } 309 }
304 310
305 /** 311 /**
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionService.java
@@ -48,12 +48,12 @@ public interface BpmProcessDefinitionService { @@ -48,12 +48,12 @@ public interface BpmProcessDefinitionService {
48 * @param model 流程模型 48 * @param model 流程模型
49 * @param modelMetaInfo 流程模型元信息 49 * @param modelMetaInfo 流程模型元信息
50 * @param bpmnBytes BPMN XML 字节数组 50 * @param bpmnBytes BPMN XML 字节数组
51 - * @param simpleBytes SIMPLE Model JSON 字节数组 51 + * @param simpleJson SIMPLE Model JSON
52 * @param form 表单 52 * @param form 表单
53 * @return 流程编号 53 * @return 流程编号
54 */ 54 */
55 String createProcessDefinition(Model model, BpmModelMetaInfoVO modelMetaInfo, 55 String createProcessDefinition(Model model, BpmModelMetaInfoVO modelMetaInfo,
56 - byte[] bpmnBytes, byte[] simpleBytes, BpmFormDO form); 56 + byte[] bpmnBytes, String simpleJson, BpmFormDO form);
57 57
58 /** 58 /**
59 * 更新流程定义状态 59 * 更新流程定义状态
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmProcessDefinitionServiceImpl.java
@@ -24,7 +24,6 @@ import org.flowable.engine.repository.ProcessDefinitionQuery; @@ -24,7 +24,6 @@ import org.flowable.engine.repository.ProcessDefinitionQuery;
24 import org.springframework.stereotype.Service; 24 import org.springframework.stereotype.Service;
25 import org.springframework.validation.annotation.Validated; 25 import org.springframework.validation.annotation.Validated;
26 26
27 -import java.nio.charset.StandardCharsets;  
28 import java.util.*; 27 import java.util.*;
29 28
30 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -120,7 +119,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ @@ -120,7 +119,7 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
120 119
121 @Override 120 @Override
122 public String createProcessDefinition(Model model, BpmModelMetaInfoVO modelMetaInfo, 121 public String createProcessDefinition(Model model, BpmModelMetaInfoVO modelMetaInfo,
123 - byte[] bpmnBytes, byte[] simpleBytes, BpmFormDO form) { 122 + byte[] bpmnBytes, String simpleJson, BpmFormDO form) {
124 // 创建 Deployment 部署 123 // 创建 Deployment 部署
125 Deployment deploy = repositoryService.createDeployment() 124 Deployment deploy = repositoryService.createDeployment()
126 .key(model.getKey()).name(model.getName()).category(model.getCategory()) 125 .key(model.getKey()).name(model.getName()).category(model.getCategory())
@@ -145,8 +144,8 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ @@ -145,8 +144,8 @@ public class BpmProcessDefinitionServiceImpl implements BpmProcessDefinitionServ
145 144
146 // 插入拓展表 145 // 插入拓展表
147 BpmProcessDefinitionInfoDO definitionDO = BeanUtils.toBean(modelMetaInfo, BpmProcessDefinitionInfoDO.class) 146 BpmProcessDefinitionInfoDO definitionDO = BeanUtils.toBean(modelMetaInfo, BpmProcessDefinitionInfoDO.class)
148 - .setModelId(model.getId()).setProcessDefinitionId(definition.getId()).setModelType(modelMetaInfo.getType())  
149 - .setSimpleModel(StrUtil.str(simpleBytes, StandardCharsets.UTF_8)); 147 + .setModelId(model.getId()).setProcessDefinitionId(definition.getId())
  148 + .setModelType(modelMetaInfo.getType()).setSimpleModel(simpleJson);
150 149
151 if (form != null) { 150 if (form != null) {
152 definitionDO.setFormFields(form.getFields()).setFormConf(form.getConf()); 151 definitionDO.setFormFields(form.getFields()).setFormConf(form.getConf());