当前位置: 首页 > news >正文

做网站是学什么专业wordpress打开install

做网站是学什么专业,wordpress打开install,建公司网站的公司,建设好网站外链有哪些方式集成Activiti-Modeler流程设计器 Activiti Modeler 是 Activiti 官方提供的一款在线流程设计的前端插件#xff0c;可以方便流程设计与开发人员绘制流程图#xff0c;保存流程模型#xff0c;部署至流程定义等等。 1、材料准备 首先我们需要获取activiti-explorer.zip可以方便流程设计与开发人员绘制流程图保存流程模型部署至流程定义等等。 1、材料准备 首先我们需要获取activiti-explorer.zip这个是activiti-5.22.0才有的。 链接https://pan.baidu.com/s/1zZ8vcjR63_hgzcLl6soiDw 提取码1e8a 2、集成 2.1 集成静态资源 其中的editor-app就是编辑器modeler.html是编辑器的入口页面。 diagram-viewer是流程跟踪插件虽然这次用不着但之后会用到。 还有一个界面组件文件在resource下名称叫stencilset.json。本身是英文的可以通过替换它来达到汉化的效果。但现在还是先把它放到项目中去。 在editor-app/app-cfg.js中配置一下项目url。这个url是编辑器相关的后台服务的url。 ACTIVITI.CONFIG {contextRoot : /service, };我去掉了项目名。 3.后端部分 先引入两个activiti的模块因为编辑器会用到这两个模块。 dependencygroupIdorg.activiti/groupIdartifactIdactiviti-modeler/artifactIdversion${activiti.version}/version/dependencydependencygroupIdorg.activiti/groupIdartifactIdactiviti-diagram-rest/artifactIdversion${activiti.version}/version/dependency其中需要将modeler模块的源代码放到src中因为需要在其中做部分修改主要是url的映射。 源码 https://github.com/Activiti/Activiti/tree/master/modules/activiti-modeler 其中有3个类都是Controller StencilsetRestResource #获取编辑器组件及配置项信息。 ModelEditorJsonRestResource #根据modelId获取model的节点信息编辑器根据返回的json进行绘图。 ModelSaveRestResource #编辑器制图之后将节点信息以json的形式提交给这个Controller然后由其进行持久化操作。需要修改的地方就三个在每个Controller类上加上RequestMapping注解并指定值为service对应前台app-cfg.js中配置的url。 ··· RequestMapping(service) public class StencilsetRestResource { ······ RequestMapping(service) public class ModelEditorJsonRestResource implements ModelDataJsonConstants { ······ RequestMapping(service) public class ModelSaveRestResource implements ModelDataJsonConstants { ···最后别忘了添加包扫描扫描activiti提供的这些controller。 SpringBootApplication ComponentScan({org.activiti,com.jerryl}) public class SpringBootWithActivitiApplication { ···这样整合部分就基本结束了此时编辑器已经可以使用了。 至于界面的汉化界面上各个组件各个标签上的文字都是在resource下的stencilset.json文件中设置的可以在网上找一个汉化后的stencilset.json文件替换掉就能看到中文界面了。 modeler相关方法的封装 主要需要封装4个方法1.新建一个空的模型2.所有模型列表3.发布模型4.删除模型activiti已提供了保存和获取模型节点信息的方法就是上面的那3个类 由于这里涉及前后端交互实现方式随意主要是activiti的api的调用。 参考代码 /*** Created by liuruijie on 2017/2/21.* 模型管理*/ RestController RequestMapping(models) public class ModelerController {AutowiredProcessEngine processEngine;AutowiredObjectMapper objectMapper;/*** 新建一个空模型* return* throws UnsupportedEncodingException*/PostMappingpublic Object newModel() throws UnsupportedEncodingException {RepositoryService repositoryService processEngine.getRepositoryService();//初始化一个空模型Model model repositoryService.newModel();//设置一些默认信息String name new-process;String description ;int revision 1;String key process;ObjectNode modelNode objectMapper.createObjectNode();modelNode.put(ModelDataJsonConstants.MODEL_NAME, name);modelNode.put(ModelDataJsonConstants.MODEL_DESCRIPTION, description);modelNode.put(ModelDataJsonConstants.MODEL_REVISION, revision);model.setName(name);model.setKey(key);model.setMetaInfo(modelNode.toString());repositoryService.saveModel(model);String id model.getId();//完善ModelEditorSourceObjectNode editorNode objectMapper.createObjectNode();editorNode.put(id, canvas);editorNode.put(resourceId, canvas);ObjectNode stencilSetNode objectMapper.createObjectNode();stencilSetNode.put(namespace,http://b3mn.org/stencilset/bpmn2.0#);editorNode.put(stencilset, stencilSetNode);repositoryService.addModelEditorSource(id,editorNode.toString().getBytes(utf-8));return ToWeb.buildResult().redirectUrl(/modeler.html?modelIdid);}/*** 获取所有模型* return*/GetMappingpublic Object modelList(){RepositoryService repositoryService processEngine.getRepositoryService();ListModel models repositoryService.createModelQuery().list();return ToWeb.buildResult().putData(models, models);}/*** 删除模型* param id* return*/DeleteMapping({id})public Object deleteModel(PathVariable(id)String id){RepositoryService repositoryService processEngine.getRepositoryService();repositoryService.deleteModel(id);return ToWeb.buildResult().refresh();}/*** 发布模型为流程定义* param id* return* throws Exception*/PostMapping({id}/deployment)public Object deploy(PathVariable(id)String id) throws Exception {//获取模型RepositoryService repositoryService processEngine.getRepositoryService();Model modelData repositoryService.getModel(id);byte[] bytes repositoryService.getModelEditorSource(modelData.getId());if (bytes null) {return ToWeb.buildResult().status(Config.FAIL).msg(模型数据为空请先设计流程并成功保存再进行发布。);}JsonNode modelNode new ObjectMapper().readTree(bytes);BpmnModel model new BpmnJsonConverter().convertToBpmnModel(modelNode);if(model.getProcesses().size()0){return ToWeb.buildResult().status(Config.FAIL).msg(数据模型不符要求请至少设计一条主线流程。);}byte[] bpmnBytes new BpmnXMLConverter().convertToXML(model);//发布流程String processName modelData.getName() .bpmn20.xml;Deployment deployment repositoryService.createDeployment().name(modelData.getName()).addString(processName, new String(bpmnBytes, UTF-8)).deploy();modelData.setDeploymentId(deployment.getId());repositoryService.saveModel(modelData);return ToWeb.buildResult().refresh();} }springboot静态文件处理 Configuration public class WebConfig implements WebMvcConfigurer {Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry){registry.addResourceHandler(/html/**).addResourceLocations(classpath:/html/);registry.addResourceHandler(/diagram-viewer/**).addResourceLocations(classpath:/html/);registry.addResourceHandler(/editor-app/**).addResourceLocations(classpath:/html/);registry.addResourceHandler(/js/**).addResourceLocations(classpath:/js/);registry.addResourceHandler(/css/**).addResourceLocations(classpath:/css/);} } 获取json数据的请求 RestController public class Test01Controller {RequestMapping(/editor/stencilset)public String test01(){InputStream streamthis.getClass().getClassLoader().getResourceAsStream(stencilset.json);try{return IOUtils.toString(stream,utf-8);}catch (Exception e){}return null;} } 在线设计流程新建model Controller RequestMapping(model) public class ModelTest {RequestMapping(create)public void createModel(HttpServletRequest request, HttpServletResponse response){try{String modelName modelName6;String modelKey modelKey66;String description modelKey666;ProcessEngine processEngine ProcessEngines.getDefaultProcessEngine();RepositoryService repositoryService processEngine.getRepositoryService();ObjectMapper objectMapper new ObjectMapper();ObjectNode editorNode objectMapper.createObjectNode();editorNode.put(id, canvas);editorNode.put(resourceId, canvas);ObjectNode stencilSetNode objectMapper.createObjectNode();stencilSetNode.put(namespace, http://b3mn.org/stencilset/bpmn2.0#);editorNode.put(stencilset, stencilSetNode);Model modelData repositoryService.newModel();ObjectNode modelObjectNode objectMapper.createObjectNode();modelObjectNode.put(ModelDataJsonConstants.MODEL_NAME, modelName);modelObjectNode.put(ModelDataJsonConstants.MODEL_REVISION, 1);modelObjectNode.put(ModelDataJsonConstants.MODEL_DESCRIPTION, description);modelData.setMetaInfo(modelObjectNode.toString());modelData.setName(modelName);modelData.setKey(modelKey);//保存模型repositoryService.saveModel(modelData);repositoryService.addModelEditorSource(modelData.getId(), editorNode.toString().getBytes(utf-8));response.sendRedirect(request.getContextPath() /html/modeler.html?modelId modelData.getId());}catch (Exception e){}}} 画流程图保存请求 RequestMapping(/model/{modelId}/save)ResponseStatus(HttpStatus.OK)public void saveModel(PathVariable String modelId, HttpServletRequest req, HttpServletResponse resp) {try {Model model this.repositoryService.getModel(modelId);ObjectNode modelJson (ObjectNode)this.objectMapper.readTree(model.getMetaInfo());modelJson.put(name, req.getParameter(name));modelJson.put(description,req.getParameter(description));model.setMetaInfo(modelJson.toString());model.setName(req.getParameter(name));this.repositoryService.saveModel(model);this.repositoryService.addModelEditorSource(model.getId(), (req.getParameter(json_xml)).getBytes(utf-8));InputStream svgStream new ByteArrayInputStream((req.getParameter(svg_xml)).getBytes(utf-8));TranscoderInput input new TranscoderInput(svgStream);PNGTranscoder transcoder new PNGTranscoder();ByteArrayOutputStream outStream new ByteArrayOutputStream();TranscoderOutput output new TranscoderOutput(outStream);transcoder.transcode(input, output);byte[] result outStream.toByteArray();System.out.println(new String(result,utf-8));this.repositoryService.addModelEditorSourceExtra(model.getId(), result);outStream.close();} catch (Exception var11) {LOGGER.error(Error saving model, var11);throw new ActivitiException(Error saving model, var11);}} 流程图查看的请求 RequestMapping(value {/model/{modelId}/json},method {RequestMethod.GET},produces {application/json})public ObjectNode getEditorJson(PathVariable String modelId) {ObjectNode modelNode null;Model model this.repositoryService.getModel(modelId);if (model ! null) {try {if (StringUtils.isNotEmpty(model.getMetaInfo())) {modelNode (ObjectNode)this.objectMapper.readTree(model.getMetaInfo());} else {modelNode this.objectMapper.createObjectNode();modelNode.put(name, model.getName());}modelNode.put(modelId, model.getId());ObjectNode editorJsonNode (ObjectNode)this.objectMapper.readTree(new String(this.repositoryService.getModelEditorSource(model.getId()), utf-8));modelNode.put(model, editorJsonNode);} catch (Exception var5) {LOGGER.error(Error creating model JSON, var5);throw new ActivitiException(Error creating model JSON, var5);}}return modelNode;}流程图保存成功以后ACT_RE_MODEL这张表会有数据 程图部署以后ACT_GE_BYTEARRAY会出现bomn结尾的文件 部署流程的请求根据modelId RequestMapping(/model/test02)public void test02(Object obj) throws Exception {Model modelData repositoryService.getModel(40001);ObjectNode modelNode (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId()));byte[] bpmnBytes null;BpmnModel model new BpmnJsonConverter().convertToBpmnModel(modelNode);bpmnBytes new BpmnXMLConverter().convertToXML(model);String processName modelData.getName() .bpmn;Deployment deployment repositoryService.createDeployment().name(modelData.getName()).addString(processName, new String(bpmnBytes,UTF-8)).deploy();} 根据这个表的key进行流程启动指定审批人
http://www.pierceye.com/news/3843/

相关文章:

  • 制作网站低价wordpress如何做优化
  • 网站关键词连接符云速成美站
  • 网站建设排版页面番禺网站建设设计
  • 哈尔滨网站开发建设公司wordpress转化为中文版
  • 商城购物网站建设jsp做的零食店网站
  • 快站怎么搭建淘客链接wordpress7牛云插件
  • 前端特效网站如何汉化wordpress主题
  • 举报网站建设网络公司好听的名字
  • 婴贝儿网站建设网站开发公司的生产
  • 什么是网站易用性爱城市网app官方下载
  • 登封市城乡建设路网站今天的新闻主要内容
  • 什么网站允许搭建网络文化经营许可证在哪里办
  • 网站开发前台wordpress主题带商城
  • 乐都企业网站建设公司个人网站页面设计作品
  • 展示营销类网站网站上传不了图片不显示不出来
  • 网站建设要外汇网站建设
  • 有网络网站打不开html设计软件
  • 网站降权如何恢复网站建设源码是什么
  • 河北建设部网站企业网站的作用和意义
  • 河南省住房和城乡建设厅网站主页南通网站建设方案开发
  • 自己做网站怎么编代码引流推广怎么做
  • 北京网站建设 网站维护python做网站需要什么
  • 如何 套用模板做网站网站策划方案实例
  • appcms程序怎么做网站做公众号的软件
  • 义乌微信网站建设费用菏泽住房与城乡建设官网
  • 户外商品网站制作wordpress多站点 用户
  • 高校网站群建设方案宁夏省建设厅网站
  • 网站建设与网页设计可行性分析报告网站引导动画怎么做
  • 牡丹江seo网站推广蜘蛛屯优化排名个人网站设计论文模板
  • 医院做网站需要去备案好的国内网站建设公司