Commit 0ce0c3f3d2c6a82550eaf14c64798c50557d3510

Authored by YunaiV
1 parent 87adf15a

【功能修复】工作流:bpmnBytes 在非 UTF-8 环境下,可能存在乱码的问题

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmModelConvert.java
... ... @@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModel
13 13 import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO;
14 14 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO;
15 15 import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO;
  16 +import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils;
16 17 import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
17 18 import org.flowable.common.engine.impl.db.SuspensionState;
18 19 import org.flowable.engine.repository.Deployment;
... ... @@ -55,7 +56,7 @@ public interface BpmModelConvert {
55 56 BpmModelMetaInfoRespDTO metaInfo = buildMetaInfo(model);
56 57 BpmModelRespVO modelVO = buildModel0(model, metaInfo, null, null, null, null);
57 58 if (ArrayUtil.isNotEmpty(bpmnBytes)) {
58   - modelVO.setBpmnXml(new String(bpmnBytes));
  59 + modelVO.setBpmnXml(BpmnModelUtils.getBpmnXml(bpmnBytes));
59 60 }
60 61 return modelVO;
61 62 }
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/BpmnModelUtils.java
... ... @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.framework.flowable.core.util;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4 4 import cn.hutool.core.util.ArrayUtil;
  5 +import cn.hutool.core.util.StrUtil;
5 6 import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
6 7 import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants;
7 8 import org.flowable.bpmn.converter.BpmnXMLConverter;
... ... @@ -108,7 +109,14 @@ public class BpmnModelUtils {
108 109 return null;
109 110 }
110 111 BpmnXMLConverter converter = new BpmnXMLConverter();
111   - return new String(converter.convertToXML(model));
  112 + return StrUtil.utf8Str(converter.convertToXML(model));
  113 + }
  114 +
  115 + public static String getBpmnXml(byte[] bpmnBytes) {
  116 + if (ArrayUtil.isEmpty(bpmnBytes)) {
  117 + return null;
  118 + }
  119 + return StrUtil.utf8Str(bpmnBytes);
112 120 }
113 121  
114 122 // ========== 遍历相关的方法 ==========
... ...