Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
bpm
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王厚康
bpm
Commits
fc10f2ca
Commit
fc10f2ca
authored
Jan 15, 2019
by
啦啦啦
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交新代码
parent
4ddb5748
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
0 additions
and
451 deletions
+0
-451
pom.xml
pom.xml
+0
-12
DemoMain.java
src/main/java/com/bbd/bpm/controller/DemoMain.java
+0
-120
logback.xml
src/main/resources/logback.xml
+0
-51
second_approve.bpmn
src/main/resources/second_approve.bpmn
+0
-134
second_approve.bpmn20.xml
src/main/resources/second_approve.bpmn20.xml
+0
-134
No files found.
pom.xml
View file @
fc10f2ca
...
...
@@ -28,18 +28,6 @@
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.activiti
</groupId>
<artifactId>
activiti-spring-boot-starter-basic
</artifactId>
<version>
5.22.0
</version>
</dependency>
<dependency>
<groupId>
com.h2database
</groupId>
<artifactId>
h2
</artifactId>
<version>
1.3.176
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<scope>
runtime
</scope>
...
...
src/main/java/com/bbd/bpm/controller/DemoMain.java
deleted
100644 → 0
View file @
4ddb5748
package
com
.
bbd
.
bpm
.
controller
;
import
com.google.common.collect.Maps
;
import
org.activiti.engine.*
;
import
org.activiti.engine.form.FormProperty
;
import
org.activiti.engine.form.TaskFormData
;
import
org.activiti.engine.impl.form.DateFormType
;
import
org.activiti.engine.impl.form.StringFormType
;
import
org.activiti.engine.repository.Deployment
;
import
org.activiti.engine.repository.DeploymentBuilder
;
import
org.activiti.engine.repository.ProcessDefinition
;
import
org.activiti.engine.runtime.ProcessInstance
;
import
org.activiti.engine.task.Task
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Scanner
;
/**
* 启动类
*/
public
class
DemoMain
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
DemoMain
.
class
);
public
static
void
main
(
String
[]
args
)
throws
ParseException
{
logger
.
info
(
"启动我们的程序"
);
//创建流程引擎
ProcessEngine
processEngine
=
getProcessEngine
();
//部署流程定义文件
ProcessDefinition
processDefinition
=
getProcessDefinition
(
processEngine
);
//启动运行流程
ProcessInstance
processInstance
=
getProcessInstance
(
processEngine
,
processDefinition
);
//处理流程任务
processTask
(
processEngine
,
processInstance
);
logger
.
info
(
"结束我们的程序"
);
}
private
static
void
processTask
(
ProcessEngine
processEngine
,
ProcessInstance
processInstance
)
throws
ParseException
{
Scanner
scanner
=
new
Scanner
(
System
.
in
);
while
(
processInstance
!=
null
&&
!
processInstance
.
isEnded
()){
TaskService
taskService
=
processEngine
.
getTaskService
();
List
<
Task
>
list
=
taskService
.
createTaskQuery
().
list
();
logger
.
info
(
"待处理人任务数量[{}]"
,
list
.
size
());
for
(
Task
task:
list
)
{
logger
.
info
(
"待处理人任务[{}]"
,
task
.
getName
());
HashMap
<
String
,
Object
>
map
=
getMap
(
processEngine
,
scanner
,
task
);
//提交表单
taskService
.
complete
(
task
.
getId
(),
map
);
processInstance
=
processEngine
.
getRuntimeService
().
createProcessInstanceQuery
().
processInstanceId
(
processInstance
.
getId
()).
singleResult
();
}
}
scanner
.
close
();
}
private
static
HashMap
<
String
,
Object
>
getMap
(
ProcessEngine
processEngine
,
Scanner
scanner
,
Task
task
)
throws
ParseException
{
FormService
formService
=
processEngine
.
getFormService
();
TaskFormData
taskFormData
=
formService
.
getTaskFormData
(
task
.
getId
());
//获取属性表单
List
<
FormProperty
>
formProperties
=
taskFormData
.
getFormProperties
();
HashMap
<
String
,
Object
>
map
=
Maps
.
newHashMap
();
for
(
FormProperty
property
:
formProperties
)
{
String
line
=
null
;
if
(
StringFormType
.
class
.
isInstance
(
property
.
getType
())){
logger
.
info
(
"请输入{} ?"
,
property
.
getName
());
line
=
scanner
.
nextLine
();
map
.
put
(
property
.
getId
(),
line
);
}
else
if
(
DateFormType
.
class
.
isInstance
(
property
.
getType
())){
logger
.
info
(
"请输入{} ? 格式(yyyy-MM-dd)"
,
property
.
getName
());
line
=
scanner
.
nextLine
();
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
date
=
dateFormat
.
parse
(
line
);
map
.
put
(
property
.
getId
(),
date
);
}
else
{
logger
.
info
(
"类型暂不支持{}"
,
property
.
getType
());
}
logger
.
info
(
"你输入的内容是[{}]"
,
line
);
}
return
map
;
}
private
static
ProcessInstance
getProcessInstance
(
ProcessEngine
processEngine
,
ProcessDefinition
processDefinition
)
{
RuntimeService
runtimeService
=
processEngine
.
getRuntimeService
();
ProcessInstance
processInstance
=
runtimeService
.
startProcessInstanceById
(
processDefinition
.
getId
());
logger
.
info
(
"启动流程[{}]"
,
processInstance
.
getProcessDefinitionKey
());
return
processInstance
;
}
private
static
ProcessDefinition
getProcessDefinition
(
ProcessEngine
processEngine
)
{
RepositoryService
repositoryService
=
processEngine
.
getRepositoryService
();
DeploymentBuilder
deploymentBuilder
=
repositoryService
.
createDeployment
();
deploymentBuilder
.
addClasspathResource
(
"second_approve.bpmn20.xml"
);
Deployment
deployment
=
deploymentBuilder
.
deploy
();
String
deploymentId
=
deployment
.
getId
();
ProcessDefinition
processDefinition
=
repositoryService
.
createProcessDefinitionQuery
().
deploymentId
(
deploymentId
).
singleResult
();
logger
.
info
(
"流程定义文件[{}],流程id[{}]"
,
processDefinition
.
getName
(),
processDefinition
.
getId
()
);
return
processDefinition
;
}
private
static
ProcessEngine
getProcessEngine
()
{
ProcessEngineConfiguration
cfg
=
ProcessEngineConfiguration
.
createStandaloneInMemProcessEngineConfiguration
();
ProcessEngine
processEngine
=
cfg
.
buildProcessEngine
();
String
name
=
processEngine
.
getName
();
String
version
=
processEngine
.
VERSION
;
logger
.
info
(
"流程引擎名称[{}],版本[{}]"
,
name
,
version
);
return
processEngine
;
}
}
src/main/resources/logback.xml
deleted
100644 → 0
View file @
4ddb5748
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration>
<configuration
scan=
"true"
scanPeriod=
"30 minutes"
debug=
"false"
>
<!-- 日志存储根路径 -->
<!--<property name="log.dir.root" value="/data/vulcan/logs/web-platform" />-->
<!-- 控制台输出日志 -->
<appender
name=
"INFO"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder
charset=
"utf-8"
>
<!-- encoder 可以指定字符集,对于中文输出有意义 -->
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
</pattern>
</encoder>
</appender>
<!-- 出错日志 appender -->
<appender
name=
"ERROR"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 按天回滚 daily -->
<fileNamePattern>
${log.dir.root}/error/sys-error-%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 日志最大的历史 180天 -->
<maxHistory>
180
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
</pattern>
</encoder>
</appender>
<!-- 访问日志 appender -->
<appender
name=
"ACCESS"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 按天回滚 daily -->
<fileNamePattern>
${log.dir.root}/access/sys-access-%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 日志最大的历史 180天 -->
<maxHistory>
180
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
</pattern>
</encoder>
</appender>
<!-- 下面配置一些第三方包的日志过滤级别 -->
<logger
name=
"org.springframework"
level=
"INFO"
/>
<logger
name=
"org.mybatis"
level=
"INFO"
/>
<logger
name=
"com.github.abel533"
level=
"INFO"
/>
<logger
name=
"tk.mybatis"
level=
"INFO"
/>
<root
level=
"INFO"
>
<appender-ref
ref=
"INFO"
/>
<appender-ref
ref=
"ACCESS"
/>
<appender-ref
ref=
"ERROR"
/>
</root>
</configuration>
src/main/resources/second_approve.bpmn
deleted
100644 → 0
View file @
4ddb5748
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:activiti=
"http://activiti.org/bpmn"
xmlns:bpmndi=
"http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:omgdc=
"http://www.omg.org/spec/DD/20100524/DC"
xmlns:omgdi=
"http://www.omg.org/spec/DD/20100524/DI"
typeLanguage=
"http://www.w3.org/2001/XMLSchema"
expressionLanguage=
"http://www.w3.org/1999/XPath"
targetNamespace=
"http://www.activiti.org/test"
>
<process
id=
"second_approve"
name=
"二级审批流程"
isExecutable=
"true"
>
<startEvent
id=
"startEvent"
name=
"开始"
></startEvent>
<userTask
id=
"submitForm"
name=
"填写审批信息"
>
<extensionElements>
<activiti:formProperty
id=
"message"
name=
"申请信息"
type=
"string"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"name"
name=
"申请人名称"
type=
"string"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"submitTime"
name=
"提交时间"
type=
"date"
datePattern=
"yyyy-MM-dd"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"submitType"
name=
"确认申请"
type=
"string"
required=
"true"
></activiti:formProperty>
</extensionElements>
</userTask>
<sequenceFlow
id=
"flow1"
sourceRef=
"startEvent"
targetRef=
"submitForm"
></sequenceFlow>
<exclusiveGateway
id=
"decideSubmit"
name=
"提交OR取消"
></exclusiveGateway>
<userTask
id=
"tl_approve"
name=
"主管审批"
>
<extensionElements>
<activiti:formProperty
id=
"tlApprove"
name=
"主管审批结果"
type=
"string"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"tlMessage"
name=
"主管备注"
type=
"string"
required=
"true"
></activiti:formProperty>
</extensionElements>
</userTask>
<exclusiveGateway
id=
"decideTLApprove"
name=
"主管审批校验"
></exclusiveGateway>
<sequenceFlow
id=
"flow4"
sourceRef=
"tl_approve"
targetRef=
"decideTLApprove"
></sequenceFlow>
<userTask
id=
"hr_approve"
name=
"人事审批"
>
<extensionElements>
<activiti:formProperty
id=
"hrApprove"
name=
"人事审批结果"
type=
"string"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"hrMessage"
name=
"人事备注"
type=
"string"
required=
"true"
></activiti:formProperty>
</extensionElements>
</userTask>
<exclusiveGateway
id=
"decideHRApprove"
name=
"人事审批校验"
></exclusiveGateway>
<sequenceFlow
id=
"flow6"
sourceRef=
"hr_approve"
targetRef=
"decideHRApprove"
></sequenceFlow>
<endEvent
id=
"EndEvent"
name=
"结束"
></endEvent>
<sequenceFlow
id=
"flow7"
sourceRef=
"decideHRApprove"
targetRef=
"EndEvent"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${hrApprove=="y" || hrApprove=="Y"}]]>
</conditionExpression>
</sequenceFlow>
<endEvent
id=
"endEventCancel"
name=
"取消"
></endEvent>
<sequenceFlow
id=
"flow10"
sourceRef=
"decideHRApprove"
targetRef=
"submitForm"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${hrApprove=="n" || hrApprove=="N"}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow11"
sourceRef=
"decideSubmit"
targetRef=
"endEventCancel"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${submitType=="n" || submitType=="n"}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow12"
sourceRef=
"decideSubmit"
targetRef=
"tl_approve"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${submitType=="y" || submitType=="Y"}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow13"
sourceRef=
"submitForm"
targetRef=
"decideSubmit"
></sequenceFlow>
<sequenceFlow
id=
"flow14"
sourceRef=
"decideTLApprove"
targetRef=
"submitForm"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${tlApprove=="n" || tlApprove=="N"}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow15"
sourceRef=
"decideTLApprove"
targetRef=
"hr_approve"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${tlApprove=="y" || tlApprove=="Y"}]]>
</conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram
id=
"BPMNDiagram_second_approve"
>
<bpmndi:BPMNPlane
bpmnElement=
"second_approve"
id=
"BPMNPlane_second_approve"
>
<bpmndi:BPMNShape
bpmnElement=
"startEvent"
id=
"BPMNShape_startEvent"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"40.0"
y=
"170.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"submitForm"
id=
"BPMNShape_submitForm"
>
<omgdc:Bounds
height=
"55.0"
width=
"105.0"
x=
"120.0"
y=
"160.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"decideSubmit"
id=
"BPMNShape_decideSubmit"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"270.0"
y=
"168.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"tl_approve"
id=
"BPMNShape_tl_approve"
>
<omgdc:Bounds
height=
"55.0"
width=
"105.0"
x=
"355.0"
y=
"161.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"decideTLApprove"
id=
"BPMNShape_decideTLApprove"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"505.0"
y=
"169.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"hr_approve"
id=
"BPMNShape_hr_approve"
>
<omgdc:Bounds
height=
"55.0"
width=
"105.0"
x=
"590.0"
y=
"162.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"decideHRApprove"
id=
"BPMNShape_decideHRApprove"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"740.0"
y=
"170.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"EndEvent"
id=
"BPMNShape_EndEvent"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"825.0"
y=
"173.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"endEventCancel"
id=
"BPMNShape_endEventCancel"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"390.0"
y=
"240.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge
bpmnElement=
"flow1"
id=
"BPMNEdge_flow1"
>
<omgdi:waypoint
x=
"75.0"
y=
"187.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"120.0"
y=
"187.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow4"
id=
"BPMNEdge_flow4"
>
<omgdi:waypoint
x=
"460.0"
y=
"188.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"505.0"
y=
"189.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow6"
id=
"BPMNEdge_flow6"
>
<omgdi:waypoint
x=
"695.0"
y=
"189.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"740.0"
y=
"190.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow7"
id=
"BPMNEdge_flow7"
>
<omgdi:waypoint
x=
"780.0"
y=
"190.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"825.0"
y=
"190.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow10"
id=
"BPMNEdge_flow10"
>
<omgdi:waypoint
x=
"780.0"
y=
"190.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"760.0"
y=
"170.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"758.0"
y=
"98.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"480.0"
y=
"99.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"328.0"
y=
"98.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"172.0"
y=
"98.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"172.0"
y=
"160.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow11"
id=
"BPMNEdge_flow11"
>
<omgdi:waypoint
x=
"290.0"
y=
"208.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"290.0"
y=
"257.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"390.0"
y=
"257.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow12"
id=
"BPMNEdge_flow12"
>
<omgdi:waypoint
x=
"310.0"
y=
"188.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"355.0"
y=
"188.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow13"
id=
"BPMNEdge_flow13"
>
<omgdi:waypoint
x=
"225.0"
y=
"187.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"270.0"
y=
"188.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow14"
id=
"BPMNEdge_flow14"
>
<omgdi:waypoint
x=
"525.0"
y=
"209.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"524.0"
y=
"290.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"356.0"
y=
"291.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"172.0"
y=
"290.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"172.0"
y=
"215.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow15"
id=
"BPMNEdge_flow15"
>
<omgdi:waypoint
x=
"545.0"
y=
"189.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"590.0"
y=
"189.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
\ No newline at end of file
src/main/resources/second_approve.bpmn20.xml
deleted
100644 → 0
View file @
4ddb5748
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:activiti=
"http://activiti.org/bpmn"
xmlns:bpmndi=
"http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:omgdc=
"http://www.omg.org/spec/DD/20100524/DC"
xmlns:omgdi=
"http://www.omg.org/spec/DD/20100524/DI"
typeLanguage=
"http://www.w3.org/2001/XMLSchema"
expressionLanguage=
"http://www.w3.org/1999/XPath"
targetNamespace=
"http://www.activiti.org/test"
>
<process
id=
"second_approve"
name=
"二级审批流程"
isExecutable=
"true"
>
<startEvent
id=
"startEvent"
name=
"开始"
></startEvent>
<userTask
id=
"submitForm"
name=
"填写审批信息"
>
<extensionElements>
<activiti:formProperty
id=
"message"
name=
"申请信息"
type=
"string"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"name"
name=
"申请人名称"
type=
"string"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"submitTime"
name=
"提交时间"
type=
"date"
datePattern=
"yyyy-MM-dd"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"submitType"
name=
"确认申请"
type=
"string"
required=
"true"
></activiti:formProperty>
</extensionElements>
</userTask>
<sequenceFlow
id=
"flow1"
sourceRef=
"startEvent"
targetRef=
"submitForm"
></sequenceFlow>
<exclusiveGateway
id=
"decideSubmit"
name=
"提交OR取消"
></exclusiveGateway>
<userTask
id=
"tl_approve"
name=
"主管审批"
>
<extensionElements>
<activiti:formProperty
id=
"tlApprove"
name=
"主管审批结果"
type=
"string"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"tlMessage"
name=
"主管备注"
type=
"string"
required=
"true"
></activiti:formProperty>
</extensionElements>
</userTask>
<exclusiveGateway
id=
"decideTLApprove"
name=
"主管审批校验"
></exclusiveGateway>
<sequenceFlow
id=
"flow4"
sourceRef=
"tl_approve"
targetRef=
"decideTLApprove"
></sequenceFlow>
<userTask
id=
"hr_approve"
name=
"人事审批"
>
<extensionElements>
<activiti:formProperty
id=
"hrApprove"
name=
"人事审批结果"
type=
"string"
required=
"true"
></activiti:formProperty>
<activiti:formProperty
id=
"hrMessage"
name=
"人事备注"
type=
"string"
required=
"true"
></activiti:formProperty>
</extensionElements>
</userTask>
<exclusiveGateway
id=
"decideHRApprove"
name=
"人事审批校验"
></exclusiveGateway>
<sequenceFlow
id=
"flow6"
sourceRef=
"hr_approve"
targetRef=
"decideHRApprove"
></sequenceFlow>
<endEvent
id=
"EndEvent"
name=
"结束"
></endEvent>
<sequenceFlow
id=
"flow7"
sourceRef=
"decideHRApprove"
targetRef=
"EndEvent"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${hrApprove=="y" || hrApprove=="Y"}]]>
</conditionExpression>
</sequenceFlow>
<endEvent
id=
"endEventCancel"
name=
"取消"
></endEvent>
<sequenceFlow
id=
"flow10"
sourceRef=
"decideHRApprove"
targetRef=
"submitForm"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${hrApprove=="n" || hrApprove=="N"}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow11"
sourceRef=
"decideSubmit"
targetRef=
"endEventCancel"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${submitType=="n" || submitType=="N"}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow12"
sourceRef=
"decideSubmit"
targetRef=
"tl_approve"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${submitType=="y" || submitType=="Y"}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow13"
sourceRef=
"submitForm"
targetRef=
"decideSubmit"
></sequenceFlow>
<sequenceFlow
id=
"flow14"
sourceRef=
"decideTLApprove"
targetRef=
"submitForm"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${tlApprove=="n" || tlApprove=="N"}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow15"
sourceRef=
"decideTLApprove"
targetRef=
"hr_approve"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${tlApprove=="y" || tlApprove=="Y"}]]>
</conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram
id=
"BPMNDiagram_second_approve"
>
<bpmndi:BPMNPlane
bpmnElement=
"second_approve"
id=
"BPMNPlane_second_approve"
>
<bpmndi:BPMNShape
bpmnElement=
"startEvent"
id=
"BPMNShape_startEvent"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"40.0"
y=
"170.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"submitForm"
id=
"BPMNShape_submitForm"
>
<omgdc:Bounds
height=
"55.0"
width=
"105.0"
x=
"120.0"
y=
"160.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"decideSubmit"
id=
"BPMNShape_decideSubmit"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"270.0"
y=
"168.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"tl_approve"
id=
"BPMNShape_tl_approve"
>
<omgdc:Bounds
height=
"55.0"
width=
"105.0"
x=
"355.0"
y=
"161.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"decideTLApprove"
id=
"BPMNShape_decideTLApprove"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"505.0"
y=
"169.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"hr_approve"
id=
"BPMNShape_hr_approve"
>
<omgdc:Bounds
height=
"55.0"
width=
"105.0"
x=
"590.0"
y=
"162.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"decideHRApprove"
id=
"BPMNShape_decideHRApprove"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"740.0"
y=
"170.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"EndEvent"
id=
"BPMNShape_EndEvent"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"825.0"
y=
"173.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"endEventCancel"
id=
"BPMNShape_endEventCancel"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"390.0"
y=
"240.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge
bpmnElement=
"flow1"
id=
"BPMNEdge_flow1"
>
<omgdi:waypoint
x=
"75.0"
y=
"187.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"120.0"
y=
"187.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow4"
id=
"BPMNEdge_flow4"
>
<omgdi:waypoint
x=
"460.0"
y=
"188.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"505.0"
y=
"189.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow6"
id=
"BPMNEdge_flow6"
>
<omgdi:waypoint
x=
"695.0"
y=
"189.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"740.0"
y=
"190.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow7"
id=
"BPMNEdge_flow7"
>
<omgdi:waypoint
x=
"780.0"
y=
"190.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"825.0"
y=
"190.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow10"
id=
"BPMNEdge_flow10"
>
<omgdi:waypoint
x=
"780.0"
y=
"190.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"760.0"
y=
"170.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"758.0"
y=
"98.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"480.0"
y=
"99.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"328.0"
y=
"98.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"172.0"
y=
"98.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"172.0"
y=
"160.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow11"
id=
"BPMNEdge_flow11"
>
<omgdi:waypoint
x=
"290.0"
y=
"208.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"290.0"
y=
"257.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"390.0"
y=
"257.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow12"
id=
"BPMNEdge_flow12"
>
<omgdi:waypoint
x=
"310.0"
y=
"188.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"355.0"
y=
"188.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow13"
id=
"BPMNEdge_flow13"
>
<omgdi:waypoint
x=
"225.0"
y=
"187.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"270.0"
y=
"188.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow14"
id=
"BPMNEdge_flow14"
>
<omgdi:waypoint
x=
"525.0"
y=
"209.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"524.0"
y=
"290.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"356.0"
y=
"291.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"172.0"
y=
"290.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"172.0"
y=
"215.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow15"
id=
"BPMNEdge_flow15"
>
<omgdi:waypoint
x=
"545.0"
y=
"189.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"590.0"
y=
"189.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment