中易网

activiti modeler 用户自定义流程图,怎么判断分支条件?

答案:1  悬赏:30  
解决时间 2021-02-08 17:33
activiti modeler 用户自定义流程图,怎么判断分支条件?
最佳答案
package org.activiti.editor.rest.model;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;

import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Model;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.ObjectNode;
import org.restlet.data.Form;
import org.restlet.data.Status;

import org.restlet.resource.Put;
import org.restlet.resource.ServerResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import sun.misc.BASE64Encoder;

public class ModelSaveRestResource extends ServerResource implements
ModelDataJsonConstants {

protected static final Logger LOGGER = LoggerFactory
.getLogger(ModelSaveRestResource.class);

@Put
public void saveModel(Form modelForm) {
ObjectMapper objectMapper = new ObjectMapper();
String modelId = (String) getRequest().getAttributes().get("modelId");
// System.out.println("json " + modelForm.getFirstValue("json_xml"));

try {



RepositoryService repositoryService = ProcessEngines
.getDefaultProcessEngine().getRepositoryService();
Model model = repositoryService.getModel(modelId);

ObjectNode modelJson = (ObjectNode) objectMapper.readTree(model
.getMetaInfo());

modelJson.put(MODEL_NAME, modelForm.getFirstValue("name"));
modelJson.put(MODEL_DESCRIPTION,
modelForm.getFirstValue("description"));
model.setMetaInfo(modelJson.toString());
model.setName(modelForm.getFirstValue("name"));


byte[] svg_xml=modelForm.getFirstValue("svg_xml").getBytes("UTF-8");


//转成UTF-8 然后使用base64编码
String gbk=new String(modelForm.getFirstValue("json_xml").getBytes("GBK"));
String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1");
String utf8=new String(iso.getBytes("ISO-8859-1"),"UTF-8");
byte[]  json_xml=new BASE64Encoder().encode(utf8.getBytes("UTF-8")).getBytes();
repositoryService.addModelEditorSource(model.getId(),json_xml);



InputStream svgStream = new ByteArrayInputStream(svg_xml);
TranscoderInput input = new TranscoderInput(svgStream);

PNGTranscoder transcoder = new PNGTranscoder();
// Setup output
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
TranscoderOutput output = new TranscoderOutput(outStream);

// Do the transformation
transcoder.transcode(input, output);
final byte[] result = outStream.toByteArray();
repositoryService.addModelEditorSourceExtra(model.getId(), result);
outStream.close();

repositoryService.saveModel(model);

} catch (Exception e) {
LOGGER.error("Error saving model", e);
setStatus(Status.SERVER_ERROR_INTERNAL);
}
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
给私人老板打工,签订了劳动合同,可他拖欠工
百视名家设计会所怎么去啊,有知道地址的么
小明在计算有余数的除法时,把被除数237错写
著作权要申请吗? 还是作品只要一经发表就立
准格尔旗神山工商所在哪里啊,我有事要去这个
拍《下辈子再爱你》MV的那两个男的是gay吗?
扬州药膳鸡总店地址在哪,我要去那里办事
重庆观音桥有没有便宜又好的旅馆或酒店?
问道后期什么职业好
计算机一级考试,就是高办一般在每年的几月
我的肩膀老是疼啊!吱吱的响啊
一个蓄水池有进水管A和出水管B两根水管。单独
脑起搏器能用手机蓝牙耳机么?另外跑步机呢?
广家滚坝地址在哪,我要去那里办事
java 链表实现(测试是否有环)
推荐资讯
教学教案可以申请知识产权么?
花呗怎么使用?
《现代生物医学进展》核心期刊吗
太阳能水从排气孔满出来怎么修
精什么大什么成语
和坪地址在哪,我要去那里办事
日记内容主要开学第一天初二60字
青岛的沃尔玛超市忙吗 人多吗 比利群怎么样
报考2012年吉林省公务员考试的法院选调生的考
画江湖之不良人,有没有拍电视剧,会什么时候
辣条是中国独有的美食吗
from monday to friday
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?