java Graphics2D根据流程xml文件画流程图(完整代码)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Graphics2D根据流程xml文件画流程图(完整代码)相关的知识,希望对你有一定的参考价值。

1、先来一张效果图

技术分享

 

2、java代码

package com.geoway.plan.action;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.geom.GeneralPath;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.ImageIcon;

import org.apache.commons.lang3.StringUtils;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.geoway.plan.core.dto.GapwfWorkitem;
import com.geoway.plan.core.service.IPlanTaskAndProjectService;
import com.geoway.plan.core.service.IWorkFlowWithStageService;

import java.awt.Font;

/**
 * 
 * @author 
 * @version $Id: WorkTaskMonitorAction.java, v 0.1 2017年1月20日 下午4:44:13  Exp $
 */
@Controller
@RequestMapping("/work")
public class WorkTaskMonitorAction {
    
    @Autowired
    IWorkFlowWithStageService workFlowWithStageService;
    
    @Autowired
    IPlanTaskAndProjectService taskAndProService;
    
    
    @RequestMapping(value = { "/showTaskMonitor.json" }, method = {RequestMethod.GET, RequestMethod.POST })
    @ResponseBody
    /***根据流程xml文件画流程图*/
    public void showTaskMonitor(HttpServletRequest request, HttpServletResponse response) throws IOException {
        
            String processID= request.getParameter("processID");//获取流程定义ID
            String procInstID = request.getParameter("procInstID");//获取任务组id
            //解析流程xml
             if(StringUtils.isEmpty(processID)){//测试数据  有值则走正常数据
                 processID = "1028020900000000014";
                 procInstID = "1028020100000000067";
            }
            Map<String, List<Element>> eleMap = analysXml(processID);    
            
             response.setContentType("image/png");//声明文件格式 
            //绘制图板  计算出的宽高
             Map<String,Integer> whMap = countWaH(eleMap);
            int width=whMap.get("width"),hight=whMap.get("hight");  
            BufferedImage image = new BufferedImage(width,hight,BufferedImage.TYPE_INT_RGB);  
            //获取图形上下文,graphics想象成一个画笔  
            Graphics2D graphics = (Graphics2D)image.getGraphics();  
            //消除线条锯齿  
            graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            graphics.setBackground(Color.WHITE);
          
            //设置背景颜色  
            graphics.setColor(Color.WHITE);  
            graphics.fillRect(0, 0, width, hight);
            //设置文字样式
            graphics.setFont(new Font("微软雅黑",Font.PLAIN,15));
           
            //获取所有的活动节点
            List<GapwfWorkitem> gws = taskAndProService.queryWorkItemById(procInstID,processID);
            Map<String,String> gwMap = new HashMap<String, String>();
            for(GapwfWorkitem gw:gws){
                gwMap.put(gw.getActivityId(), gw.getState());
            }
            
                    
            List<Element> lines = eleMap.get("lines");
            for(Element line:lines){
                String points = line.element("points").getText().trim();//获取连接线坐标
                String [] point = points.split("\\\\s+");//分割点坐标
                String point1 = point[0].trim();//获取点1坐标
                String point2 = point[1].trim();//获取点2坐标
                String [] point1s= point1.split(",");//分割点1坐标
                int point1sx = Integer.parseInt(point1s[0].substring(0, point1s[0].indexOf(".")>0?point1s[0].indexOf("."):point1s[0].length()));//获取点1x坐标
                int point1sy = Integer.parseInt(point1s[1].substring(0, point1s[1].indexOf(".")>0?point1s[1].indexOf("."):point1s[1].length()));//获取点1y坐标
                String [] point2s= point2.split(",");//分割点2坐标
                int point2sx = Integer.parseInt(point2s[0].substring(0, point2s[0].indexOf(".")>0?point2s[0].indexOf("."):point2s[0].length()));//获取点2x坐标
                int point2sy = Integer.parseInt(point2s[1].substring(0, point2s[1].indexOf(".")>0?point1s[1].indexOf("."):point2s[1].length()));//获取点2y坐标
                drawArrowLine(graphics,point1sx,point1sy,point2sx,point2sy);
            }
            /**画活动*/
            List<Element> bactives = eleMap.get("bactives");
            drawActive(graphics,bactives,gwMap);
            List<Element> sactives = eleMap.get("sactives");
            drawActive(graphics,sactives,gwMap);
            
            /**画路由*/
            List<Element> routes = eleMap.get("routes");
            drawRoutes(graphics,routes);
            
            /**画开始结束*/
            List<Element> circles = eleMap.get("circles");
            drawCircles(graphics,circles);
          
           
            graphics.dispose();//释放此图形的上下文并释放它所使用的所有系统资源  
            ImageIO.write(image,"JPEG",response.getOutputStream());  
        
    }
    
    //画开始结束
    private void drawCircles(Graphics2D graphics,List<Element> circles){
         for(Element circle:circles){
                String bounds = circle.attributeValue("bounds");
                String circleName = circle.attributeValue("name");
                int circlex = Integer.parseInt(bounds.split(",")[0].substring(0, bounds.split(",")[0].indexOf(".")>0?bounds.split(",")[0].indexOf("."):bounds.split(",")[0].length()));//获取点1x坐标
                int circley = Integer.parseInt(bounds.split(",")[1].substring(0, bounds.split(",")[1].indexOf(".")>0?bounds.split(",")[1].indexOf("."):bounds.split(",")[1].length()));//获取点1x坐标
                URL url=getClass().getResource("img/js.jpg");
                if(StringUtils.equals("Circle1", circleName)){
                    url=getClass().getResource("img/ks.jpg");
                }
                ImageIcon imageIcon=new ImageIcon(url);
                Image images=imageIcon.getImage();
                graphics.drawImage(images, circlex, circley, null);
                
                
            }
    }
    
    //画路由
    private void drawRoutes(Graphics2D graphics,List<Element> routes){
         for(Element route:routes){
                String bounds = route.attributeValue("bounds");
                int routex = Integer.parseInt(bounds.split(",")[0].substring(0, bounds.split(",")[0].indexOf(".")>0?bounds.split(",")[0].indexOf("."):bounds.split(",")[0].length()));//获取点1x坐标
                int routey = Integer.parseInt(bounds.split(",")[1].substring(0, bounds.split(",")[1].indexOf(".")>0?bounds.split(",")[1].indexOf("."):bounds.split(",")[1].length()));//获取点1x坐标
                URL url=getClass().getResource("img/ly.jpg");
                ImageIcon imageIcon=new ImageIcon(url);
                Image images=imageIcon.getImage();
                graphics.drawImage(images, routex, routey, null);
            }
    }
        
    
    //画活动
    private void drawActive(Graphics2D graphics,List<Element> actives,Map<String,String> gwMap){
         for(Element active:actives){
                String bounds = active.attributeValue("bounds");
                String activeName = active.attributeValue("name");
                int activex = Integer.parseInt(bounds.split(",")[0].substring(0, bounds.split(",")[0].indexOf(".")>0?bounds.split(",")[0].indexOf("."):bounds.split(",")[0].length()));//获取点1x坐标
                int activey = Integer.parseInt(bounds.split(",")[1].substring(0, bounds.split(",")[1].indexOf(".")>0?bounds.split(",")[1].indexOf("."):bounds.split(",")[1].length()));//获取点1x坐标
                
                URL url=getClass().getResource("img/hd.jpg");
                ImageIcon imageIcon=new ImageIcon(url);
                Image images=imageIcon.getImage();
                graphics.drawImage(images, activex, activey, null);
                
               String state = gwMap.get(activeName);
               Color color = Color.BLACK;
               graphics.setStroke(new BasicStroke(1.0f));
               //流程状态监控 根据不同的状态显示不同颜色的边框
               if("1".equals(state) || "7".equals(state) || "9".equals(state)){//待处理
                     color = Color.RED;
                     graphics.setStroke(new BasicStroke(2.0f));//边框加粗
               }
               if("2".equals(state) || "6".equals(state) || "8".equals(state)){
                        color = Color.GREEN;
                        graphics.setStroke(new BasicStroke(2.0f));//边框加粗
               }
               if("3".equals(state)){
                   color = Color.GRAY;
                   graphics.setStroke(new BasicStroke(2.0f));//边框加粗
               }
               if("4".equals(state)){
                   color = Color.BLUE;
                   graphics.setStroke(new BasicStroke(2.0f));//边框加粗
               }
               if("5".equals(state)){
                   color = Color.PINK;
                   graphics.setStroke(new BasicStroke(2.0f));//边框加粗
               }
                //画活动边框
                graphics.setColor(color); 
                graphics.drawRect(activex, activey, 77, 48); 
                
                //画文字
                Element ele = active.element("text");
                String eleText = ele.attributeValue("text");
                String elebounds = ele.attributeValue("bounds");
                int eleTextx = Integer.parseInt(elebounds.split(",")[0].substring(0, elebounds.split(",")[0].indexOf(".")>0?elebounds.split(",")[0].indexOf("."):elebounds.split(",")[0].length()));//获取点1x坐标
                int eleTexty = Integer.parseInt(elebounds.split(",")[1].substring(0, elebounds.split(",")[1].indexOf(".")>0?elebounds.split(",")[1].indexOf("."):elebounds.split(",")[1].length()));//获取点1x坐标
                
                 //设置文字颜色  
                graphics.setColor(Color.BLACK);  
                //设置文字内容、位置  
                graphics.setFont(new Font("微软雅黑",Font.PLAIN,14));
                //计算文字显示位置77*48  y48/2 + 14/4  x
                int x=  (77- eleText.length()*14)/2;//活动节点定宽77px  (77-文字长度)/2
                int y= 48/2+14/4;//活动节点定高48px
                if(eleText.length()>5){//文字内容大于5展示方式
                    List<String> strs =  new ArrayList<String>();
                    pstrs(eleText,strs);
                    if(strs.size()<=2){//>5 <=10 展示方式
                        y=48/4+14/2;
                        for(String str:strs){
                            graphics.drawString(str, eleTextx+2, eleTexty+y);
                            y=48/4+14/2+16;
                        }
                    }
                    
                    if(strs.size()>2){// >10展示方式
                        y=48/4+14/4;
                        for(int i=0;i<=2;i++){
                            y=48/4+14/4+16*i;
                            if(i==2&&strs.get(i).length()>3){
                                String pstr = strs.get(i).substring(0, 3)+"...";
                                graphics.drawString(pstr, eleTextx+2, eleTexty+y-2);
                                break;
                            }
                            graphics.drawString(strs.get(i), eleTextx+2, eleTexty+y-2);
                            
                        }
                    }
                    
                }else{
                    graphics.drawString(eleText, eleTextx+x, eleTexty+y);
                }
            }
    }
    
    /**计算活动节点中的显示字数  用于换行  省略*/
    private void pstrs(String str ,List<String> strs){
         if(str.length()>5){
                String pstr = str.substring(0, 5);
                String ystr = str.substring(5,str.length());
                strs.add(pstr);
                pstrs(ystr,strs);
         }else{
             strs.add(str);
         }
        //return strs;
    }
    
    
    /**画箭头线bounds*/
    private void drawArrowLine(Graphics2D graphics,int sx,int sy,int ex,int ey){
        //int sx=120,  sy = 120,  ex=190, ey=160;
        double H = 10; // 箭头高度
        double L = 5; // 底边的一半
        int x3 = 0,x4=0,y3=0,y4=0;
        double awrad = Math.atan(L / H); // 箭头角度
        double arraow_len = Math.sqrt(L * L + H * H); // 箭头的长度
        double[] arrXY_1 = rotateVec(ex - sx, ey - sy, awrad, true, arraow_len);
        double[] arrXY_2 = rotateVec(ex - sx, ey - sy, -awrad, true, arraow_len);
        double x_3 = ex - arrXY_1[0]; // (x3,y3)是第一端点
        double y_3 = ey - arrXY_1[1];
        double x_4 = ex - arrXY_2[0]; // (x4,y4)是第二端点
        double y_4 = ey - arrXY_2[1];
        Double X3 = new Double(x_3);
        x3 = X3.intValue();
        Double Y3 = new Double(y_3);
        y3 = Y3.intValue();
        Double X4 = new Double(x_4);
        x4 = X4.intValue();
        Double Y4 = new Double(y_4);
        y4 = Y4.intValue();
        // 画线
        graphics.setStroke(new BasicStroke(1));
        graphics.setColor(new Color(91,155,213));
        graphics.drawLine(sx, sy, ex, ey);

        //
        GeneralPath triangle = new GeneralPath();
        triangle.moveTo(ex, ey);
        triangle.lineTo(x3, y3);
        triangle.lineTo(x4, y4);
        triangle.closePath();
        //实心箭头
        graphics.setColor(new Color(91,155,213));
        graphics.fill(triangle);
        
    }
    
    
    /** 计算画箭头连接线坐标*/
    private static double[] rotateVec(double px, double py, double ang,boolean isChLen, double newLen) {
        double mathstr[] = new double[2];
        // 矢量旋转函数,参数含义分别是x分量、y分量、旋转角、是否改变长度、新长度
        double vx = px * Math.cos(ang) - py * Math.sin(ang);
        double vy = px * Math.sin(ang) + py * Math.cos(ang);
        if (isChLen) {
          double d = Math.sqrt(vx * vx + vy * vy);
          vx = vx / d * newLen;
          vy = vy / d * newLen;
          mathstr[0] = vx;
          mathstr[1] = vy;
        }
        return mathstr;

    }
    
    /***获取流程定义*/
    private String  getWFXml(String id){
        byte[] tblxml=workFlowWithStageService.getTbl(id);
        return new String(tblxml);
    }
    
    /***解析xml**/
    private Map<String, List<Element>> analysXml(String id){
        String docXml =getWFXml(id);
        Map<String, List<Element>> eleMap = new HashMap<String, List<Element>>();
         try {
            Document document = DocumentHelper.parseText(docXml);
            
            Element rootElement = document.getRootElement();  
            Element sheetElement = rootElement.element("sheet");
            //获取所有的连接线
            List<Element> lines= sheetElement.elements("line");
            eleMap.put("lines",lines);
            //获取所有的活动
            List<Element> bactives= sheetElement.elements("Active");
            List<Element> sactives= sheetElement.elements("active");
            eleMap.put("bactives",bactives);
            eleMap.put("sactives",sactives);
            //获取所有路由
            List<Element> routes= sheetElement.elements("route");
            eleMap.put("routes",routes);
            //获取所有的开始结束
            List<Element> circles= sheetElement.elements("circle");
            eleMap.put("circles",circles);
        } catch (DocumentException e) {
            e.printStackTrace();
        }  
         
         return eleMap;
    }
    
    /**计算画布大小*/
    private Map<String,Integer> countWaH(Map<String, List<Element>> map){
        
        Map<String,Integer> whMap = new HashMap<String, Integer>();
        List<Integer> xs =  new ArrayList<Integer>();
        List<Integer> ys =  new ArrayList<Integer>();
        try {
            //获取所有活动XY最大值
            Map<String, Integer>  map1 = getEleMaxXY(map.get("bactives"));
            xs.add(map1.get("mx"));
            ys.add(map1.get("my"));
            Map<String, Integer>  map2 = getEleMaxXY(map.get("sactives"));
            xs.add(map2.get("mx"));
            ys.add(map2.get("my"));
            //获取所有路由XY最大值
            Map<String, Integer>  map3 = getEleMaxXY(map.get("routes"));
            xs.add(map3.get("mx"));
            ys.add(map3.get("my"));
            //获取所有开始结束XY最大值
            Map<String, Integer>  map4 = getEleMaxXY(map.get("circles"));
            xs.add(map4.get("mx"));
            ys.add(map4.get("my"));
            
            whMap.put("width", Collections.max(xs)+20);
            whMap.put("hight", Collections.max(ys)+20); 
        } catch (Exception e) {
            e.printStackTrace();
        }
        return whMap;
    }
    /**获取流程中最大的x坐标y坐标 用来计算画布大小*/
    private Map<String, Integer> getEleMaxXY(List<Element> eles){
        Map<String, Integer> map = new HashMap<String, Integer>();
        try {
            List<Integer> xs =  new ArrayList<Integer>();
            List<Integer> ys =  new ArrayList<Integer>();
             for(Element ele:eles){
                    String bounds = ele.attributeValue("bounds");
                    int elex = Integer.parseInt(bounds.split(",")[0].substring(0, bounds.split(",")[0].indexOf(".")>0?bounds.split(",")[0].indexOf("."):bounds.split(",")[0].length()));//获取点1x坐标
                    int eley = Integer.parseInt(bounds.split(",")[1].substring(0, bounds.split(",")[1].indexOf(".")>0?bounds.split(",")[1].indexOf("."):bounds.split(",")[1].length()));//获取点1y坐标
                    int elex2 = Integer.parseInt(bounds.split(",")[2].substring(0, bounds.split(",")[2].indexOf(".")>0?bounds.split(",")[2].indexOf("."):bounds.split(",")[2].length()));//获取点2x坐标
                    int eley2 = Integer.parseInt(bounds.split(",")[3].substring(0, bounds.split(",")[3].indexOf(".")>0?bounds.split(",")[3].indexOf("."):bounds.split(",")[3].length()));//获取点2y坐标
                    xs.add(elex);
                    xs.add(elex2);
                    ys.add(eley);
                    ys.add(eley2);
             }
             map.put("mx", Collections.max(xs));
             map.put("my", Collections.max(ys));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }
    
    

}

 

3、流程xml文件 有点长 用于参考

<?xml version="1.0" encoding="gb2312" ?> 
- 
<vg version="460" gridsize="8" range="0,0,1024,721" bordericons="7" borderstyle="3" scrollbars="3" windowstate="0" backcolor="$FFFFFF" frontcolor="$FFFFFF" pattern="241">
    <page name="Page" bounds="0,0,827,1169" visible="false" margin="100,100,100,100" paperwidth="2100" paperheight="2969" /> 
- 
    <sheet name="Sheet1" bounds="26,12,667,322.5" MyXPDL="‘
        <?xml version="1.0" encoding="gb2312"?>
        <Package Id="" Name=""
            xmlns="http://www.wfmc.org/2002/XPDL1.0"
            xmlns:xpdl="http://www.wfmc.org/2002/XPDL1.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.wfmc.org/2002/XPDL1.0 http://wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd">
            <PackageHeader>
                <XPDLVersion>1.0</XPDLVersion>
                <Vendor>use</Vendor>
                <Created>2016/12/14 15:32:37</Created>
            </PackageHeader>
            <WorkflowProcesses>
                <WorkflowProcess AccessLevel="PUBLIC" Id="1028100100000000006" Name="业务协同审批类流程1.0">
                    <ProcessHeader DurationUnit="D">
                        <Created>2016/12/14 15:32:37</Created>
                        <Limit>0</Limit>
                    </ProcessHeader>
                    <Activities>
                        <Activity Id="Route1" Name = "">
                            <Route />
                            <Description />
                            <Performer />
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line15" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs></TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttribute />
                        </Activity>
                        <Activity Id="Active1" Name = "窗口收件">
                            <Implementation>
                                <Tool Id="Active1" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active1_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs></TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line1" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="false"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                        <Activity Id="Active2" Name = "发改初审">
                            <Implementation>
                                <Tool Id="Active2" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active2_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line1" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line4" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="true"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                        <Activity Id="Active3" Name = "统一发件">
                            <Implementation>
                                <Tool Id="Active3" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active3_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line4" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="AND">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line5" />
                                            <TransitionRef Id="Line6" />
                                            <TransitionRef Id="Line7" />
                                            <TransitionRef Id="Line8" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="true"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                        <Activity Id="Active4" Name = "住建">
                            <Implementation>
                                <Tool Id="Active4" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active4_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line5" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line9" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="false"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                        <Activity Id="Active5" Name = "国土">
                            <Implementation>
                                <Tool Id="Active5" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active5_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line6" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line10" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="false"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                        <Activity Id="Active6" Name = "环保">
                            <Implementation>
                                <Tool Id="Active6" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active6_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line7" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line11" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="false"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                        <Activity Id="Active7" Name = "林业">
                            <Implementation>
                                <Tool Id="Active7" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active7_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line8" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line12" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="false"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                        <Activity Id="Active8" Name = "意见汇总">
                            <Implementation>
                                <Tool Id="Active8" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active8_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="AND">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line9" />
                                            <TransitionRef Id="Line10" />
                                            <TransitionRef Id="Line11" />
                                            <TransitionRef Id="Line12" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line13" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="false"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                        <Activity Id="Active9" Name = "项目生成意见批复">
                            <Implementation>
                                <Tool Id="Active9" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active9_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line13" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line14" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="false"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                        <Activity Id="Active10" Name = "窗口发件">
                            <Implementation>
                                <Tool Id="Active10" Type="APPLICATION">
                                    <Description />
                                    <ActualParameters>
                                        <ActualParameter>formid</ActualParameter>
                                        <ActualParameter>TheNextParticipator</ActualParameter>
                                    </ActualParameters>
                                    <ExtendedAttribute />
                                </Tool>
                            </Implementation>
                            <Description />
                            <Performer>Active10_par</Performer>
                            <TransitionRestrictions>
                                <TransitionRestriction>
                                    <Join Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line14" />
                                        </TransitionRefs>
                                    </Join>
                                    <Split Type="XOR">
                                        <TransitionRefs>
                                            <TransitionRef Id="Line15" />
                                        </TransitionRefs>
                                    </Split>
                                </TransitionRestriction>
                            </TransitionRestrictions>
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                                <ExtendedAttribute Name="CanRollback" Value="false"/>
                                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
                            </ExtendedAttributes>
                        </Activity>
                    </Activities>
                    <Participants>
                        <Participant Id="Active1_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10091" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                        <Participant Id="Active2_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10087" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                        <Participant Id="Active3_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10088" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                        <Participant Id="Active4_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10094" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                        <Participant Id="Active5_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10093" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                        <Participant Id="Active6_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10096" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                        <Participant Id="Active7_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10095" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                        <Participant Id="Active8_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10088" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                        <Participant Id="Active9_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10087" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                        <Participant Id="Active10_par" Name="aaa">
                            <ParticipantType Type="HUMAN"/>
                            <ExternalReference location="" xref="10092" namespace=""/>
                            <ExtendedAttributes/>
                        </Participant>
                    </Participants>
                    <Applications>
                        <Application Id="Active1" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                        <Application Id="Active2" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                        <Application Id="Active3" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                        <Application Id="Active4" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                        <Application Id="Active5" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                        <Application Id="Active6" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                        <Application Id="Active7" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                        <Application Id="Active8" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                        <Application Id="Active9" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                        <Application Id="Active10" Name="">
                            <Description />
                            <ExternalReference location="" xref="/jsp/formdesign/customform/fw_form.jsp" namespace="" />
                            <ExtendedAttributes>
                                <ExtendedAttribute Name="ActivityType" Value="Manual" />
                                <ExtendedAttribute Name="AdaptorName" Value="" />
                                <ExtendedAttribute Name="StartActivityAction" Value="" />
                                <ExtendedAttribute Name="EndActivityAction" Value="" />
                            </ExtendedAttributes>
                        </Application>
                    </Applications>
                    <ExtendedAttributes>
                        <ExtendedAttribute Name="StartWorkflowAction" Value="" />
                        <ExtendedAttribute Name="EndWorkflowAction" Value="" />
                        <ExtendedAttribute Name="StartOfWorkflow" Value="Active1"/>
                        <ExtendedAttribute Name="EndOfWorkflow" Value="Route1"/>
                        <ExtendedAttribute Name="FormRef" Value=""/>
                    </ExtendedAttributes>
                    <DataFields>
                        <DataField Id="formid" Name="表单索引">
                            <Description/>
                            <InitialValue>0</InitialValue>
                            <Length/>
                            <DataType>
                                <BasicType Type="STRING"/>
                            </DataType>
                            <ExtendedAttributes/>
                        </DataField>
                        <DataField Id="TheNextParticipator" Name="下一步参与者">
                            <Description/>
                            <InitialValue></InitialValue>
                            <Length/>
                            <DataType>
                                <BasicType Type="STRING"/>
                            </DataType>
                            <ExtendedAttributes/>
                        </DataField>
                    </DataFields>
                    <FormalParameters></FormalParameters>
                    <ActivitySets />
                    <Transitions>
                        <Transition Id="Line1" Name="" From="Active1" To="Active2">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line4" Name="" From="Active2" To="Active3">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line5" Name="" From="Active3" To="Active4">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line6" Name="" From="Active3" To="Active5">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line7" Name="" From="Active3" To="Active6">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line8" Name="" From="Active3" To="Active7">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line9" Name="" From="Active4" To="Active8">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line10" Name="" From="Active5" To="Active8">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line11" Name="" From="Active6" To="Active8">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line12" Name="" From="Active7" To="Active8">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line13" Name="" From="Active8" To="Active9">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line14" Name="" From="Active9" To="Active10">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                        <Transition Id="Line15" Name="" From="Active10" To="Route1">
                            <Description />
                            <Condition Type="CONDITION"></Condition>
                            <ExtendedAttrbutes />
                        </Transition>
                    </Transitions>
                </WorkflowProcess>
            </WorkflowProcesses>
        </Package>‘" P_id="‘1028100100000000006‘" P_name="‘业务协同审批类流程1.0‘">
- 
        <circle name="Circle1" description="开始" bounds="26,18,102,52" origin="64,35" alpha="80" protect="252" backcolor="$FFFFE8" frontcolor="$F7F700" pattern="244">
            <text name="Text1" bounds="33.103240983,25.103240983,94.896759017,44.896759017" origin="64,35" lock="true" border="$0" fontname="宋体" fontsize="12" text="开始" />
        </circle>
- 
        <circle name="Circle2" description="结束" bounds="591,190.5,667,224.5" origin="629,206" alpha="80" protect="252" backcolor="$F5F5F5" frontcolor="$F0F000" pattern="252">
            <text name="Text1" bounds="598.103240983,197.603240983,659.896759017,217.396759017" origin="629,207.5" lock="true" border="$0" fontname="宋体" fontsize="12" text="结束" />
        </circle>
- 
        <line name="Line2" description="关联" origin="136.532019704,193" protect="16" lock="true" linetype="12" linecolor="$FF0000" frontcolor="$808080" linkmode="1">
            <points>102,35.152,6 151,35.348,2</points>
            <link>Circle1,p0,center Active1,p1,center</link>
        </line>
- 
        <line name="Line3" description="关联" origin="579.950936429,366" protect="16" lock="true" linetype="12" linecolor="$FF0000" frontcolor="$808080" linkmode="1">
            <points>629,277,6 629,225,2</points>
            <link>Route1,p0,center Circle2,p1,center</link>
        </line>
- 
        <line name="Line1" description="转移" origin="156,144.414590782" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>227,35.674311927,6 260,35.825688073,2</points>
            <link>Active1,p0,center Active2,p1,center</link>
        </line>
- 
        <route name="Route1" description="路由" bounds="606.136929844,276,651.863070156,321.726140312" origin="626.886929844,299">
            <circle name="Circle1" bounds="606.136929844,276,651.863070156,321.726140312" origin="639.363070156,309.226140312" linecolor="$FF8000" frontcolor="$FF8000" pattern="248" />
            <text name="Text1" bounds="612.136929844,283.25,645.886929844,311.75" origin="621.886929844,330.25" lock="true" backcolor="$0" frontcolor="$FFFFFF" border="$0" fontname="宋体" fontsize="12" text="结束路由" />
        </route>
- 
        <active name="Active1" description="活动" bounds="151,12,227,59" origin="180,27" A_joinInType="‘XOR‘" A_joinOutType="‘XOR‘" A_name="‘窗口收件‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘false‘" E_CommitStrategic="‘Anyone‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="false"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10091‘" P_person0_type="‘HUMAN‘" P_person0name="‘cksjy‘" P_personcount="‘1‘" P_personref="‘Active1_par‘" P_personXML="‘
            <Participant Id="Active1_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10091" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="151,12,227,59" origin="198.25,38.5" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="151,12,227,59" origin="434.75,145.3" lock="true" fontname="宋体" fontsize="12" text="窗口收件" />
        </active>
- 
        <Active name="Active2" description="活动" bounds="260,12.5,336,59.5" origin="298,36" A_joinInType="‘XOR‘" A_joinOutType="‘XOR‘" A_name="‘发改初审‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘true‘" E_CommitStrategic="‘Anyone‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="true"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10087‘" P_person0_type="‘HUMAN‘" P_person0name="‘fgw‘" P_personcount="‘1‘" P_personref="‘Active2_par‘" P_personXML="‘
            <Participant Id="Active2_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10087" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="260,12.5,336,59.5" origin="317.8,41.4" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="260,12.5,336,59.5" origin="317.3,42.2" lock="true" fontname="宋体" fontsize="12" borderinterval="0" text="发改初审" />
        </Active>
- 
        <Active name="Active3" description="活动" bounds="260,86.5,336,133.5" origin="298,110" A_joinInType="‘XOR‘" A_joinOutType="‘AND‘" A_name="‘统一发件‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘true‘" E_CommitStrategic="‘Anyone‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="true"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10088‘" P_person0_type="‘HUMAN‘" P_person0name="‘ghj‘" P_personcount="‘1‘" P_personref="‘Active3_par‘" P_personXML="‘
            <Participant Id="Active3_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10088" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="260,86.5,336,133.5" origin="317.8,115.4" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="260,86.5,336,133.5" origin="317.3,116.2" lock="true" fontname="宋体" fontsize="12" borderinterval="0" text="统一发件" />
        </Active>
- 
        <Active name="Active4" description="活动" bounds="109,182.5,185,229.5" origin="147,206" A_joinInType="‘XOR‘" A_joinOutType="‘XOR‘" A_name="‘住建‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘false‘" E_CommitStrategic="‘Anyone‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="false"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10094‘" P_person0_type="‘HUMAN‘" P_person0name="‘zjbm‘" P_personcount="‘1‘" P_personref="‘Active4_par‘" P_personXML="‘
            <Participant Id="Active4_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10094" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="109,182.5,185,229.5" origin="166.8,211.4" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="109,182.5,185,229.5" origin="166.3,212.2" lock="true" fontname="宋体" fontsize="12" borderinterval="0" text="住建" />
        </Active>
- 
        <Active name="Active5" description="活动" bounds="211,180.5,287,227.5" origin="249,204" A_joinInType="‘XOR‘" A_joinOutType="‘XOR‘" A_name="‘国土‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘false‘" E_CommitStrategic="‘Anyone‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="false"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10093‘" P_person0_type="‘HUMAN‘" P_person0name="‘gtbm‘" P_personcount="‘1‘" P_personref="‘Active5_par‘" P_personXML="‘
            <Participant Id="Active5_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10093" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="211,180.5,287,227.5" origin="268.8,209.4" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="211,180.5,287,227.5" origin="268.3,210.2" lock="true" fontname="宋体" fontsize="12" borderinterval="0" text="国土" />
        </Active>
- 
        <Active name="Active6" description="活动" bounds="312,180.5,388,227.5" origin="350,204" A_joinInType="‘XOR‘" A_joinOutType="‘XOR‘" A_name="‘环保‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘false‘" E_CommitStrategic="‘Anyone‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="false"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10096‘" P_person0_type="‘HUMAN‘" P_person0name="‘hbbm‘" P_personcount="‘1‘" P_personref="‘Active6_par‘" P_personXML="‘
            <Participant Id="Active6_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10096" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="312,180.5,388,227.5" origin="369.8,209.4" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="312,180.5,388,227.5" origin="369.3,210.2" lock="true" fontname="宋体" fontsize="12" borderinterval="0" text="环保" />
        </Active>
- 
        <Active name="Active7" description="活动" bounds="410,179.5,486,226.5" origin="448,203" A_joinInType="‘XOR‘" A_joinOutType="‘XOR‘" A_name="‘林业‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘false‘" E_CommitStrategic="‘Anyone‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="false"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10095‘" P_person0_type="‘HUMAN‘" P_person0name="‘lybm‘" P_personcount="‘1‘" P_personref="‘Active7_par‘" P_personXML="‘
            <Participant Id="Active7_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10095" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="410,179.5,486,226.5" origin="467.8,208.4" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="410,179.5,486,226.5" origin="467.3,209.2" lock="true" fontname="宋体" fontsize="12" borderinterval="0" text="林业" />
        </Active>
- 
        <Active name="Active8" description="活动" bounds="261,275.5,337,322.5" origin="299,299" A_joinInType="‘AND‘" A_joinOutType="‘XOR‘" A_name="‘意见汇总‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘false‘" E_CommitStrategic="‘All‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="false"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10088‘" P_person0_type="‘HUMAN‘" P_person0name="‘ghj‘" P_personcount="‘1‘" P_personref="‘Active8_par‘" P_personXML="‘
            <Participant Id="Active8_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10088" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="261,275.5,337,322.5" origin="318.8,304.4" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="261,275.5,337,322.5" origin="318.3,305.2" lock="true" fontname="宋体" fontsize="12" borderinterval="0" text="意见汇总" />
        </Active>
- 
        <Active name="Active9" description="活动" bounds="369,275.5,445,322.5" origin="407,299" A_joinInType="‘XOR‘" A_joinOutType="‘XOR‘" A_name="‘项目生成意见批复‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘false‘" E_CommitStrategic="‘Anyone‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="false"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10087‘" P_person0_type="‘HUMAN‘" P_person0name="‘fgw‘" P_personcount="‘1‘" P_personref="‘Active9_par‘" P_personXML="‘
            <Participant Id="Active9_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10087" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="369,275.5,445,322.5" origin="426.8,304.4" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="369,275.5,445,322.5" origin="426.3,305.2" lock="true" fontname="宋体" fontsize="12" borderinterval="0" text="项目生成意见批复" />
        </Active>
- 
        <Active name="Active10" description="活动" bounds="479,275.5,555,322.5" origin="517,299" A_joinInType="‘XOR‘" A_joinOutType="‘XOR‘" A_name="‘窗口发件‘" A_txtactbjsp="‘‘" A_txtactejsp="‘‘" A_txtHint="‘‘" D_count="‘0‘" E_AssignStrategic="‘All‘" E_CanGetback="‘false‘" E_CanRollback="‘false‘" E_CommitStrategic="‘Anyone‘" E_CommitStrategicPercentNumber="‘0‘" E_DurationUnit="‘NO‘" E_ExecuteNode="‘‘" E_ExecuteStrategic="‘Share‘" E_ExecuteUnit="‘W‘" E_Limit="‘0-0-0-0-0‘" E_UnrestrictedRouting="‘false‘" P_data="‘‘" P_ExAtXML="‘
            <ExtendedAttributes>
                <ExtendedAttribute Name="AssignStrategic" Value="All"/>
                <ExtendedAttribute Name="ExecuteNode" Value=""/>
                <ExtendedAttribute Name="Limit" Value="0-0-0-0-0"/>
                <ExtendedAttribute Name="OvertimeHandlerType" Value="NO"/>
                <ExtendedAttribute Name="OvertimeHandlerTool" Value="email"/>
                <ExtendedAttribute Name="OvertimeHandlerRef" Value=""/>
                <ExtendedAttribute Name="CanRollback" Value="false"/>
                <ExtendedAttribute Name="CanWithdraw" Value="false"/>
                <ExtendedAttribute Name="UnrestrictedRouting" Value="false"/>
                <ExtendedAttribute Name="ExecuteUnit" Value="W"/>
                <ExtendedAttribute Name="CommitStrategic" Value="Anyone"/>
                <ExtendedAttribute Name="ExecuteStrategic" Value="Share"/>
                <ExtendedAttribute Name="StartActivityAction" Value=""/>
                <ExtendedAttribute Name="EndActivityAction" Value=""/>
                <ExtendedAttribute Name="CommitStrategicPercentNumber" Value="0"/>
            </ExtendedAttributes>‘" P_person0="‘10092‘" P_person0_type="‘HUMAN‘" P_person0name="‘ckfjy‘" P_personcount="‘1‘" P_personref="‘Active10_par‘" P_personXML="‘
            <Participant Id="Active10_par" Name="aaa">
                <ParticipantType Type="HUMAN"/>
                <ExternalReference location="" xref="10092" namespace=""/>
                <ExtendedAttributes/>
            </Participant>‘" P_URL="‘/jsp/formdesign/customform/fw_form.jsp‘">
            <rect name="Active" description="活动" bounds="479,275.5,555,322.5" origin="536.8,304.4" corner="30" frontcolor="$FEE39E" pattern="244" />
            <text name="Text1" bounds="479,275.5,555,322.5" origin="536.3,305.2" lock="true" fontname="宋体" fontsize="12" borderinterval="0" text="窗口发件" />
        </Active>
- 
        <line name="Line4" description="转移" origin="341.115384615,74" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>298,60,6 298,87,2</points>
            <link>Active2,p0,center Active3,p1,center</link>
        </line>
- 
        <line name="Line5" description="转移" origin="332.04,145" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>260.25,134,6 183.177083333,183,2</points>
            <link>Active3,p0,center Active4,p1,center</link>
        </line>
- 
        <line name="Line6" description="转移" origin="331.823529412,145.5" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>285.489361702,134,6 260.989361702,181,2</points>
            <link>Active3,p0,center Active5,p1,center</link>
        </line>
- 
        <line name="Line7" description="转移" origin="333.076923077,146" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>311.276595745,134,6 337.276595745,181,2</points>
            <link>Active3,p0,center Active6,p1,center</link>
        </line>
- 
        <line name="Line8" description="转移" origin="340.384615385,146" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>336,133.56,6 410.903225806,180,2</points>
            <link>Active3,p0,center Active7,p1,center</link>
        </line>
- 
        <line name="Line9" description="转移" origin="189.75,242" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>185,229.25,6 261.408602151,276,2</points>
            <link>Active4,p0,center Active8,p1,center</link>
        </line>
- 
        <line name="Line10" description="转移" origin="291.132075472,242.5" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>261.631578947,228,6 286.894736842,276,2</points>
            <link>Active5,p0,center Active8,p1,center</link>
        </line>
- 
        <line name="Line11" description="转移" origin="383.75,240" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>337.115789474,228,6 311.347368421,276,2</points>
            <link>Active6,p0,center Active8,p1,center</link>
        </line>
- 
        <line name="Line12" description="转移" origin="479.810344828,245" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>410.75,227,6 334.697916667,276,2</points>
            <link>Active7,p0,center Active8,p1,center</link>
        </line>
- 
        <line name="Line13" description="转移" origin="342.66,336" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>337,299,6 369,299,2</points>
            <link>Active8,p0,center Active9,p1,center</link>
        </line>
- 
        <line name="Line14" description="转移" origin="443.428571429,338" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>445,299,6 479,299,2</points>
            <link>Active9,p0,center Active10,p1,center</link>
        </line>
- 
        <line name="Line15" description="转移" origin="556.565217391,334" linecolor="$FFAA55" endarrow="1" linkmode="1">
            <points>555,298.95354166,6 607,298.88996709,2</points>
            <link>Active10,p0,center Route1,p1,center</link>
        </line>
    </sheet>
</vg>

 

以上是关于java Graphics2D根据流程xml文件画流程图(完整代码)的主要内容,如果未能解决你的问题,请参考以下文章

Java Graphics2D画二次曲线,求问这两个曲线怎么画出来,画在面板??给五分 求助,关键是弯线,直线我会画

Java 上的 (Graphics g, Graphics2D) 问题

使用Java的Graphics类进行绘图的方法详解

前端如何根据数据画svg图

java Graphics2D 生成图片随着字符长度变化

vscode怎么打开xml流程图