Commit 0ce0c3f3d2c6a82550eaf14c64798c50557d3510
1 parent
87adf15a
【功能修复】工作流:bpmnBytes 在非 UTF-8 环境下,可能存在乱码的问题
Showing
2 changed files
with
11 additions
and
2 deletions
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,6 +13,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModel | ||
| 13 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; | 13 | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionRespVO; |
| 14 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO; | 14 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO; |
| 15 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; | 15 | import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmFormDO; |
| 16 | +import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils; | ||
| 16 | import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO; | 17 | import cn.iocoder.yudao.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO; |
| 17 | import org.flowable.common.engine.impl.db.SuspensionState; | 18 | import org.flowable.common.engine.impl.db.SuspensionState; |
| 18 | import org.flowable.engine.repository.Deployment; | 19 | import org.flowable.engine.repository.Deployment; |
| @@ -55,7 +56,7 @@ public interface BpmModelConvert { | @@ -55,7 +56,7 @@ public interface BpmModelConvert { | ||
| 55 | BpmModelMetaInfoRespDTO metaInfo = buildMetaInfo(model); | 56 | BpmModelMetaInfoRespDTO metaInfo = buildMetaInfo(model); |
| 56 | BpmModelRespVO modelVO = buildModel0(model, metaInfo, null, null, null, null); | 57 | BpmModelRespVO modelVO = buildModel0(model, metaInfo, null, null, null, null); |
| 57 | if (ArrayUtil.isNotEmpty(bpmnBytes)) { | 58 | if (ArrayUtil.isNotEmpty(bpmnBytes)) { |
| 58 | - modelVO.setBpmnXml(new String(bpmnBytes)); | 59 | + modelVO.setBpmnXml(BpmnModelUtils.getBpmnXml(bpmnBytes)); |
| 59 | } | 60 | } |
| 60 | return modelVO; | 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,6 +2,7 @@ package cn.iocoder.yudao.module.bpm.framework.flowable.core.util; | ||
| 2 | 2 | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | import cn.hutool.core.util.ArrayUtil; | 4 | import cn.hutool.core.util.ArrayUtil; |
| 5 | +import cn.hutool.core.util.StrUtil; | ||
| 5 | import cn.iocoder.yudao.framework.common.util.number.NumberUtils; | 6 | import cn.iocoder.yudao.framework.common.util.number.NumberUtils; |
| 6 | import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants; | 7 | import cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnModelConstants; |
| 7 | import org.flowable.bpmn.converter.BpmnXMLConverter; | 8 | import org.flowable.bpmn.converter.BpmnXMLConverter; |
| @@ -108,7 +109,14 @@ public class BpmnModelUtils { | @@ -108,7 +109,14 @@ public class BpmnModelUtils { | ||
| 108 | return null; | 109 | return null; |
| 109 | } | 110 | } |
| 110 | BpmnXMLConverter converter = new BpmnXMLConverter(); | 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 | // ========== 遍历相关的方法 ========== |