mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-11-04 08:06:12 +08:00 
			
		
		
		
	BPM 模型重构 2:导入流程时,只填写 name、description、key
This commit is contained in:
		@ -31,6 +31,7 @@ import org.springframework.util.ObjectUtils;
 | 
				
			|||||||
import org.springframework.validation.annotation.Validated;
 | 
					import org.springframework.validation.annotation.Validated;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.annotation.Resource;
 | 
					import javax.annotation.Resource;
 | 
				
			||||||
 | 
					import java.nio.charset.StandardCharsets;
 | 
				
			||||||
import java.util.HashSet;
 | 
					import java.util.HashSet;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
@ -148,9 +149,7 @@ public class BpmModelServiceImpl implements BpmModelService {
 | 
				
			|||||||
        if (StrUtil.isEmpty(bpmnXml)) {
 | 
					        if (StrUtil.isEmpty(bpmnXml)) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        byte[] bpmnBytes = ActivitiUtils.replaceBpmnMainProcessIdAndName(bpmnXml,
 | 
					        repositoryService.addModelEditorSource(model.getId(), bpmnXml.getBytes(StandardCharsets.UTF_8));
 | 
				
			||||||
                model.getKey(), model.getName());
 | 
					 | 
				
			||||||
        repositoryService.addModelEditorSource(model.getId(), bpmnBytes);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
 | 
				
			|||||||
@ -404,7 +404,7 @@ export default {
 | 
				
			|||||||
      // 重置表单
 | 
					      // 重置表单
 | 
				
			||||||
      this.uploadClose();
 | 
					      this.uploadClose();
 | 
				
			||||||
      // 提示,并刷新
 | 
					      // 提示,并刷新
 | 
				
			||||||
      this.msgSuccess("导入流程模型成功");
 | 
					      this.msgSuccess("导入流程模型成功!请点击【设计流程】按钮,进行编辑保存后,才可以进行【发布流程】");
 | 
				
			||||||
      this.getList();
 | 
					      this.getList();
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    uploadClose() {
 | 
					    uploadClose() {
 | 
				
			||||||
 | 
				
			|||||||
@ -42,23 +42,4 @@ public class ActivitiUtils {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // ========== BPMN XML 相关 ==========
 | 
					    // ========== BPMN XML 相关 ==========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 替换 BPMN XML 主流程的 id 和 name 属性
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param bpmnXml 原始的 BPMN XML 字符串
 | 
					 | 
				
			||||||
     * @param id 编号,对应到 XML 实际是 key 属性
 | 
					 | 
				
			||||||
     * @param name 名字
 | 
					 | 
				
			||||||
     * @return 新的 BPMN XML 的字节数组
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public static byte[] replaceBpmnMainProcessIdAndName(String bpmnXml, String id, String name) {
 | 
					 | 
				
			||||||
        // 转换成 BpmnModel 对象
 | 
					 | 
				
			||||||
        BpmnXMLConverter converter = new BpmnXMLConverter();
 | 
					 | 
				
			||||||
        BpmnModel bpmnModel = converter.convertToBpmnModel(new StringStreamSource(bpmnXml), true, true);
 | 
					 | 
				
			||||||
        // 设置 id 和 name 属性
 | 
					 | 
				
			||||||
        bpmnModel.getMainProcess().setId(id);
 | 
					 | 
				
			||||||
        bpmnModel.getMainProcess().setName(name);
 | 
					 | 
				
			||||||
        // 转换回字节数组
 | 
					 | 
				
			||||||
        return converter.convertToXML(bpmnModel);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user