`

《我要写一个工作流》——001

 
阅读更多

    首先定义模型,采用xml格式。一下是测试代码。

package com.jc.bus.workflow.web;

import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

@Controller
public class WorkFlowController {

	
	@RequestMapping(value = {"setting"})
	public ModelAndView fetchSetting (){
		ModelAndView mav = new ModelAndView("/workflow/setting");
		
		return mav;
	}
	
	@RequestMapping(value = {"create"})
	@ResponseBody
	public Map<String, Object> createWorkflow (HttpServletRequest request, String workflowName){
		Map<String, Object> retmsg = new HashMap<String, Object>();
		String path = request.getServletContext().getRealPath("/");
		String filePath = path.concat("workflow/").concat(workflowName).concat(".xml");
		File xmlFile = new File(filePath);
		try{
			Writer fw = new FileWriter(xmlFile);
			fw.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<root></root>");
			fw.flush();
			fw.close();
			retmsg.put("success", true);
		}catch (Exception e){
			retmsg.put("success", false);
			retmsg.put("msg", e.toString());
		}
		return retmsg;
	}
	
	@RequestMapping(value = {"add"})
	@ResponseBody
	public Map<String, Object> addNode (HttpServletRequest request, String workflowName, String nodeName, String parent){
		Map<String, Object> retmsg = new HashMap<String, Object>();
		String path = request.getServletContext().getRealPath("/");
		String filePath = path.concat("workflow/").concat(workflowName).concat(".xml");
		
		try{
			File inputFile = new File(filePath);
			System.out.println(inputFile.exists());
	        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
	        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
	        Document doc = dBuilder.parse(inputFile);
	        doc.getDocumentElement().normalize();
	        NodeList nList = doc.getElementsByTagName("root");
	        Node root = nList.item(0);
	        Element newChild = doc.createElement(nodeName);
	        newChild.setAttribute("node1", "gogogo");
	        root.appendChild(newChild);
	        
	        // write the content into xml file
	        TransformerFactory transformerFactory = TransformerFactory.newInstance();
	        Transformer transformer = transformerFactory.newTransformer();
	        DOMSource source = new DOMSource(doc);
	        StreamResult result = new StreamResult(inputFile);
	        transformer.transform(source, result);
	        
		}catch (Exception e){
			retmsg.put("success", false);
			retmsg.put("msg", e.toString());
		}
		
		return retmsg;
	}
	
}

 

分享到:
评论

相关推荐

    慧正工作流——帮助制造业实现流程自动化

    慧正工作流——帮助制造业实现流程自动化,慧正工作流在施耐德电力,大唐电气的实施成果,帮助制造业实现腾飞

    工作流学习笔记——很好很详细

    工作流学习笔记——很好很详细 工作流(Workflow)是一种自动化业务流程的技术,它将复杂的任务分解成一系列可管理的步骤,并按照预定义的规则和条件执行这些步骤。在.NET框架中,Microsoft提供了Windows Workflow ...

    基于snakemake和python的可定制工作流——用于分析NGS数据

    "基于snakemake和python的可定制工作流——用于分析NGS数据" 这个标题揭示了我们关注的核心技术是Snakemake和Python,它们被应用于设计和实施一种针对Next Generation Sequencing (NGS) 数据分析的定制化工作流程。...

    范玉顺——工作流管理技术基础

    工作流管理系统中涉及的数据往往包含敏感信息,因此如何在保证工作效率的同时确保信息安全,也是当前研究的一个热点。 综上所述,《范玉顺——工作流管理技术基础》不仅覆盖了工作流管理的基础知识和技术实现,还...

    工作流管理——模型、方法和系统 习题解答

    ### 工作流管理——模型、方法和系统习题解答解析 #### 第一章:基础知识与概念 **习题1.1** 本题考察工作流的基本构造。 - **顺序**:指工作流中任务按照预设的顺序依次执行,前一个任务完成后下一个任务才能...

    在线式工作安排和协作管理软件——蓝点工作流管理系统

    蓝点工作流管理系统是一个B/S结构的团队工作任务管理软件,可视为一个精简的OA系统,专为解决以下问题而设计:  ——作为一名管理人员,你可能每天都有许多工作要安排给自己或下属,但常常会忘了自己给谁安排了...

    工作流引擎详细设计说明书GB8567——88.pdf

    工作流设计器是工作流引擎的另一个主要模块,负责设计和定义工作流模型。它包括以下几个方面: * 程序概述:工作流设计器的总体架构和设计思想。 * 功能设计:工作流设计器的功能设计,包括流程定义、任务定义、...

    前端工作流.pdf————电子版_pdf版

    静态资源的打包压缩是前端工作流中的另一个关键步骤。随着项目规模的增大,静态资源的数量和体积也在不断增加,如果不进行有效地压缩打包,将对网页的加载速度和性能产生负面影响。一个常见的做法是通过`bashscript`...

    工作流管理:模型、方法和系统

    7. **案例研究——Sagitta 2000**:第七章通过一个具体的案例研究展示了工作流管理的实际应用情况。这个案例研究有助于读者更好地理解工作流管理在现实世界中的运作方式。 #### 四、附录部分 - **附录A:工作流...

    工作流管理:模型、方法和系统.pdf

    工作流管理系统的参考模型提供了一个标准化的方式来设计和构建工作流管理系统。这部分内容详细讨论了参考模型的不同组成部分,包括用户界面、工作流定义工具、工作流引擎、数据库管理系统等。通过对参考模型的理解,...

    基于WFMC规范的工作流引擎——Java对象模型转换为DB数据模型接口的解决方案.pdf

    "基于WFMC规范的工作流引擎——Java对象模型转换为DB数据模型接口的解决方案.pdf" 基于WFMC规范的工作流引擎是指遵循WFMC(WorkFlow Management Coalition,工作流管理联盟)制定的规范和标准,开发出的工作流引擎...

    一个简单的开发OA工作流文档

    例如:空管站发文的流程(综合业务室)拟稿——领导审批——领导会签——行政办行文这是工作流中的文件流——文件办理的一个过程。 工作流的理论化描述是这样的:随着信息化进程的不断深入,协同应用软件的概念已...

    疯狂Workflow讲义——基于Activiti的工作流应用开发.part1

    《疯狂Workflow讲义——基于Activiti的工作流应用开发》的最后通过讲解一个办公自动化系统的开发过程,让读者更了解Activiti在实际生产中的使用,让本书的内容不仅仅停留在理论的层次,更为读者开辟了实践的道路。...

    疯狂Workflow讲义——基于Activiti的工作流应用开发.part3

    《疯狂Workflow讲义——基于Activiti的工作流应用开发》的最后通过讲解一个办公自动化系统的开发过程,让读者更了解Activiti在实际生产中的使用,让本书的内容不仅仅停留在理论的层次,更为读者开辟了实践的道路。...

    《工作流管理--模型、方法和系统》

    工作流管理是一个重要的IT领域,它涉及到企业流程的自动化、协调和优化,是现代信息化系统中的核心组成部分。《工作流管理--模型、方法和系统》这本书深入探讨了这个主题,为读者提供了理论基础和实践应用的指导。书...

    带你轻松看懂机器学习工作流——以“点一份披萨外卖”为例.docx

    本文通过一个生动的例子——“点一份披萨外卖”的过程,巧妙地类比了机器学习工作流中的各个环节,旨在以更加直观易懂的方式帮助读者理解这一复杂过程。 #### 二、播种:数据生成 **定义:** “播种”阶段对应于...

    什么是简易团队工作流?—— 一份迟到的数学建模美赛协作解决方案.pdf

    设计一个适合自己的团队工作流是非常重要的。下面是一些实用的建议: 1. **明确目标**:首先要清楚团队的目标是什么,希望解决哪些具体问题。 2. **识别需求**:根据目标识别团队的具体需求,包括所需技能、资源等...

    疯狂Workflow讲义——基于Activiti的工作流应用开发03

    《疯狂Workflow讲义——基于Activiti的工作流应用开发》的最后通过讲解一个办公自动化系统的开发过程,让读者更了解Activiti在实际生产中的使用,让本书的内容不仅仅停留在理论的层次,更为读者开辟了实践的道路。

    疯狂Workflow讲义——基于Activiti的工作流应用开发01

    《疯狂Workflow讲义——基于Activiti的工作流应用开发》的最后通过讲解一个办公自动化系统的开发过程,让读者更了解Activiti在实际生产中的使用,让本书的内容不仅仅停留在理论的层次,更为读者开辟了实践的道路。

Global site tag (gtag.js) - Google Analytics