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
aa25e164
Commit
aa25e164
authored
Aug 14, 2019
by
Java-曹文达
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加查看高亮流程图
parent
58127b81
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
409 additions
and
101 deletions
+409
-101
TaskOperateController.java
src/main/java/com/bbd/bpm/controller/taskOperate/TaskOperateController.java
+161
-99
UserWebController.java
src/main/java/com/bbd/bpm/controller/user/UserWebController.java
+14
-1
SpecialRequest.java
src/main/java/com/bbd/bpm/dto/request/SpecialRequest.java
+54
-0
QueryPiByUserIdBean.java
src/main/java/com/bbd/bpm/dto/response/QueryPiByUserIdBean.java
+23
-0
ActivitiService.java
src/main/java/com/bbd/bpm/service/ActivitiService.java
+19
-0
ActivitiServiceImpl.java
src/main/java/com/bbd/bpm/serviceImpl/ActivitiServiceImpl.java
+82
-0
deplyment.html
src/main/resources/templates/deployment/deplyment.html
+43
-0
initiatedDeployList.html
src/main/resources/templates/deployment/initiatedDeployList.html
+13
-1
No files found.
src/main/java/com/bbd/bpm/controller/taskOperate/TaskOperateController.java
View file @
aa25e164
package
com
.
bbd
.
bpm
.
controller
.
taskOperate
;
import
com.alibaba.fastjson.JSON
;
import
com.bbd.bpm.dto.PageUtil
;
import
com.bbd.bpm.dto.SysCode
;
import
com.bbd.bpm.dto.request.CompleteTaskRequest
;
import
com.bbd.bpm.dto.request.PendingTaskListRequest
;
import
com.bbd.bpm.dto.request.QueryStartedPiByUserIdRequest
;
import
com.bbd.bpm.dto.request.SpecialRequest
;
import
com.bbd.bpm.dto.response.BpmResponse
;
import
com.bbd.bpm.dto.response.PendingTaskListBean
;
import
com.bbd.bpm.dto.response.QueryPiByUserIdBean
;
import
com.bbd.bpm.service.ActivitiService
;
import
com.bbd.bpm.util.validate.ValidateUtil
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.activiti.engine.*
;
import
org.activiti.engine.history.HistoricActivityInstance
;
import
org.activiti.engine.history.HistoricProcessInstance
;
import
org.activiti.engine.runtime.ProcessInstance
;
import
org.activiti.engine.task.Task
;
import
org.activiti.engine.task.TaskQuery
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -26,10 +27,13 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.util.*
;
import
static
com
.
sun
.
mail
.
util
.
ASCIIUtility
.
getBytes
;
/**
* Created by houkang on 2019/2/27.
...
...
@@ -50,19 +54,22 @@ public class TaskOperateController {
private
RuntimeService
runtimeService
;
@Autowired
private
ActivitiService
activitiService
;
/**
* taskStatus 1 已完成 2 未完成 3 全部
*
*
/
*/
@ApiOperation
(
value
=
"查询我发起的流程"
)
@PostMapping
(
"/queryStartedPiByUserId"
)
@ResponseBody
public
BpmResponse
queryStartedPiByUserId
(
QueryStartedPiByUserIdRequest
req
,
PageUtil
pageUtil
)
{
public
BpmResponse
queryStartedPiByUserId
(
QueryStartedPiByUserIdRequest
req
,
PageUtil
pageUtil
)
{
BpmResponse
resp
=
new
BpmResponse
();
try
{
try
{
//数据校验
String
error
=
ValidateUtil
.
check_queryStartedPiByUserId
(
req
);
if
(
error
!=
null
)
{
Log
.
error
(
"查询我发起的流程,数据校验失败"
+
error
);
if
(
error
!=
null
)
{
Log
.
error
(
"查询我发起的流程,数据校验失败"
+
error
);
resp
.
setCode
(
SysCode
.
VALIDATE_ERROR
);
resp
.
setMessage
(
error
);
resp
.
setSuccess
(
false
);
...
...
@@ -70,15 +77,15 @@ public class TaskOperateController {
}
// QueryPiByUserIdBean
//任务办理人
PageHelper
.
startPage
(
pageUtil
.
getPageNumber
(),
pageUtil
.
getPageSize
());
List
<
HistoricProcessInstance
>
listPi
=
historyService
.
createHistoricProcessInstanceQuery
().
involvedUser
(
req
.
getUserId
()).
listPage
(
pageUtil
.
getPageNumber
(),
pageUtil
.
getPageSize
());
if
(
listPi
!=
null
&&
!
listPi
.
isEmpty
())
{
PageHelper
.
startPage
(
pageUtil
.
getPageNumber
(),
pageUtil
.
getPageSize
());
List
<
HistoricProcessInstance
>
listPi
=
historyService
.
createHistoricProcessInstanceQuery
().
involvedUser
(
req
.
getUserId
()).
listPage
(
pageUtil
.
getPageNumber
(),
pageUtil
.
getPageSize
());
if
(
listPi
!=
null
&&
!
listPi
.
isEmpty
())
{
List
<
QueryPiByUserIdBean
>
datalist
=
new
ArrayList
<>();
for
(
HistoricProcessInstance
hpi:
listPi
)
{
for
(
HistoricProcessInstance
hpi
:
listPi
)
{
List
<
Task
>
taskList
=
taskService
.
createTaskQuery
().
processInstanceId
(
hpi
.
getId
()).
list
();
QueryPiByUserIdBean
bean
=
new
QueryPiByUserIdBean
();
//业务密钥
//业务密钥
bean
.
setBusinessKey
(
hpi
.
getBusinessKey
());
//流程名称
bean
.
setProcessDefinitionName
(
hpi
.
getProcessDefinitionName
());
...
...
@@ -88,79 +95,80 @@ public class TaskOperateController {
bean
.
setStartTime
(
hpi
.
getStartTime
());
//结束时间
bean
.
setEndTime
(
hpi
.
getEndTime
());
if
(
hpi
.
getEndTime
()!=
null
)
{
if
(
hpi
.
getEndTime
()
!=
null
)
{
bean
.
setEnded
(
true
);
}
if
(
"1"
.
equals
(
req
.
getTaskStatus
()))
{
if
(
bean
.
isEnded
())
{
if
(
"1"
.
equals
(
req
.
getTaskStatus
()))
{
if
(
bean
.
isEnded
())
{
//当前操作人
bean
.
setName
(
"已审批完成"
);
bean
.
setProcessNodeName
(
"审批完成"
);
datalist
.
add
(
bean
);
}
}
else
if
(
"2"
.
equals
(
req
.
getTaskStatus
()))
{
if
(!
bean
.
isEnded
())
{
for
(
Task
t:
taskList
)
{
}
else
if
(
"2"
.
equals
(
req
.
getTaskStatus
()))
{
if
(!
bean
.
isEnded
())
{
for
(
Task
t
:
taskList
)
{
//当前操作人
bean
.
setName
(
t
.
getAssignee
());
bean
.
setName
(
t
.
getAssignee
());
bean
.
setTaskId
(
t
.
getId
());
bean
.
setExecutionId
(
t
.
getExecutionId
());
bean
.
setProcessNodeName
(
t
.
getName
());
}
datalist
.
add
(
bean
);
}
}
else
{
}
else
{
//当前操作人
bean
.
setName
(
"已审批完成"
);
bean
.
setProcessNodeName
(
"审批完成"
);
for
(
Task
t:
taskList
)
{
for
(
Task
t
:
taskList
)
{
//当前操作人
bean
.
setName
(
t
.
getAssignee
());
bean
.
setName
(
t
.
getAssignee
());
bean
.
setProcessNodeName
(
t
.
getName
());
bean
.
setTaskId
(
t
.
getId
());
bean
.
setExecutionId
(
t
.
getExecutionId
());
}
datalist
.
add
(
bean
);
}
}
PageInfo
pageInfo
=
new
PageInfo
(
datalist
);
PageInfo
pageInfo
=
new
PageInfo
(
datalist
);
resp
.
setData
(
pageInfo
);
}
resp
.
setCode
(
SysCode
.
SUCCESS_CODE
);
resp
.
setSuccess
(
true
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"查询我发起的流程失败"
,
e
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"查询我发起的流程失败"
,
e
);
resp
.
setSuccess
(
false
);
resp
.
setCode
(
SysCode
.
SYS_ERROR
);
resp
.
setMessage
(
"查询我发起的流程失败"
+
e
.
getMessage
());
resp
.
setMessage
(
"查询我发起的流程失败"
+
e
.
getMessage
());
}
return
resp
;
}
@ApiOperation
(
value
=
"查询待处理任务"
)
@PostMapping
(
"/pendingTaskList"
)
@ResponseBody
public
BpmResponse
pendingTaskList
(
PendingTaskListRequest
req
,
PageUtil
pageUtil
)
{
public
BpmResponse
pendingTaskList
(
PendingTaskListRequest
req
,
PageUtil
pageUtil
)
{
BpmResponse
resp
=
new
BpmResponse
();
try
{
try
{
//数据校验
String
error
=
ValidateUtil
.
check_pendingTaskList
(
req
);
if
(
error
!=
null
)
{
Log
.
error
(
"查询待处理任务,数据校验失败"
+
error
);
if
(
error
!=
null
)
{
Log
.
error
(
"查询待处理任务,数据校验失败"
+
error
);
resp
.
setCode
(
SysCode
.
VALIDATE_ERROR
);
resp
.
setMessage
(
error
);
resp
.
setSuccess
(
false
);
return
resp
;
}
//任务办理人
PageHelper
.
startPage
(
pageUtil
.
getPageNumber
(),
pageUtil
.
getPageSize
());
List
<
Task
>
taskList
=
taskService
.
createTaskQuery
().
taskAssignee
(
req
.
getAssignee
()).
listPage
(
pageUtil
.
getPageNumber
(),
pageUtil
.
getPageSize
());
if
(
taskList
!=
null
&&
taskList
.
size
()>
0
)
{
PageHelper
.
startPage
(
pageUtil
.
getPageNumber
(),
pageUtil
.
getPageSize
());
List
<
Task
>
taskList
=
taskService
.
createTaskQuery
().
taskAssignee
(
req
.
getAssignee
()).
listPage
(
pageUtil
.
getPageNumber
(),
pageUtil
.
getPageSize
());
if
(
taskList
!=
null
&&
taskList
.
size
()
>
0
)
{
List
<
PendingTaskListBean
>
dataList
=
new
ArrayList
<>();
for
(
Task
task
:
taskList
)
{
ProcessInstance
pi
=
runtimeService
.
createProcessInstanceQuery
().
processInstanceId
(
task
.
getProcessInstanceId
()).
singleResult
();
PendingTaskListBean
bean
=
new
PendingTaskListBean
();
for
(
Task
task
:
taskList
)
{
ProcessInstance
pi
=
runtimeService
.
createProcessInstanceQuery
().
processInstanceId
(
task
.
getProcessInstanceId
()).
singleResult
();
PendingTaskListBean
bean
=
new
PendingTaskListBean
();
//业务密钥
bean
.
setBusinessKey
(
pi
.
getBusinessKey
());
//发起人
...
...
@@ -175,17 +183,17 @@ public class TaskOperateController {
bean
.
setProcessInstanceId
(
task
.
getProcessInstanceId
());
dataList
.
add
(
bean
);
}
PageInfo
pageInfo
=
new
PageInfo
(
dataList
);
PageInfo
pageInfo
=
new
PageInfo
(
dataList
);
resp
.
setData
(
pageInfo
);
}
resp
.
setSuccess
(
true
);
resp
.
setCode
(
SysCode
.
SUCCESS_CODE
);
resp
.
setMessage
(
"查询待处理任务成功"
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"查询待处理任务失败"
,
e
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"查询待处理任务失败"
,
e
);
resp
.
setSuccess
(
false
);
resp
.
setCode
(
SysCode
.
SYS_ERROR
);
resp
.
setMessage
(
"查询待处理任务失败"
+
e
.
getMessage
());
resp
.
setMessage
(
"查询待处理任务失败"
+
e
.
getMessage
());
}
return
resp
;
}
...
...
@@ -193,20 +201,20 @@ public class TaskOperateController {
@ApiOperation
(
value
=
"改变任务处理人"
)
@GetMapping
(
"/appointTaskTo"
)
@ResponseBody
public
BpmResponse
appointTaskTo
(
String
taskId
,
String
userId
)
{
public
BpmResponse
appointTaskTo
(
String
taskId
,
String
userId
)
{
BpmResponse
resp
=
new
BpmResponse
();
try
{
try
{
//校验参数
if
(
StringUtils
.
isBlank
(
taskId
)||
StringUtils
.
isBlank
(
userId
)
)
{
resp
.
setMessage
(
"请求参数"
+
SysCode
.
NOT_ALLOW_NULL
);
if
(
StringUtils
.
isBlank
(
taskId
)
||
StringUtils
.
isBlank
(
userId
))
{
resp
.
setMessage
(
"请求参数"
+
SysCode
.
NOT_ALLOW_NULL
);
resp
.
setCode
(
SysCode
.
VALIDATE_ERROR
);
resp
.
setSuccess
(
false
);
return
resp
;
}
Task
task
=
taskService
.
createTaskQuery
().
taskId
(
taskId
).
singleResult
();
Task
task
=
taskService
.
createTaskQuery
().
taskId
(
taskId
).
singleResult
();
//校验参数
if
(
task
==
null
||
task
.
getId
()==
null
)
{
if
(
task
==
null
||
task
.
getId
()
==
null
)
{
resp
.
setMessage
(
"任务不存在或已完成"
);
resp
.
setCode
(
SysCode
.
VALIDATE_ERROR
);
resp
.
setSuccess
(
false
);
...
...
@@ -217,10 +225,10 @@ public class TaskOperateController {
resp
.
setSuccess
(
true
);
resp
.
setMessage
(
"改变任务处理人成功"
);
resp
.
setCode
(
SysCode
.
SUCCESS_CODE
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"改变任务处理人失败"
,
e
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"改变任务处理人失败"
,
e
);
resp
.
setSuccess
(
false
);
resp
.
setMessage
(
"改变任务处理人失败"
+
e
.
getMessage
());
resp
.
setMessage
(
"改变任务处理人失败"
+
e
.
getMessage
());
resp
.
setCode
(
SysCode
.
SYS_ERROR
);
}
return
resp
;
...
...
@@ -232,12 +240,12 @@ public class TaskOperateController {
public
BpmResponse
deleteTask
(
String
taskId
)
{
BpmResponse
resp
=
new
BpmResponse
();
//todo
try
{
try
{
taskService
.
deleteTask
(
taskId
);
resp
.
setSuccess
(
true
);
resp
.
setMessage
(
"删除任务成功"
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"删除任务失败"
,
e
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"删除任务失败"
,
e
);
resp
.
setSuccess
(
false
);
}
return
resp
;
...
...
@@ -246,48 +254,102 @@ public class TaskOperateController {
@ApiOperation
(
value
=
"任务办理"
)
@PostMapping
(
"/completeTask"
)
@ResponseBody
public
BpmResponse
completeTask
(
CompleteTaskRequest
req
)
{
public
BpmResponse
completeTask
(
CompleteTaskRequest
req
)
{
BpmResponse
resp
=
new
BpmResponse
();
try
{
//数据校验
String
error
=
ValidateUtil
.
check_completeTask
(
req
);
if
(
error
!=
null
)
{
Log
.
error
(
"任务办理,数据校验失败"
+
error
);
resp
.
setCode
(
SysCode
.
VALIDATE_ERROR
);
resp
.
setMessage
(
error
);
resp
.
setSuccess
(
false
);
return
resp
;
}
try
{
//数据校验
String
error
=
ValidateUtil
.
check_completeTask
(
req
);
if
(
error
!=
null
)
{
Log
.
error
(
"任务办理,数据校验失败"
+
error
);
resp
.
setCode
(
SysCode
.
VALIDATE_ERROR
);
resp
.
setMessage
(
error
);
resp
.
setSuccess
(
false
);
return
resp
;
}
Task
task
=
taskService
.
createTaskQuery
().
taskId
(
req
.
getTaskId
()).
singleResult
();
//校验参数
if
(
task
==
null
||
task
.
getId
()==
null
)
{
resp
.
setMessage
(
"任务不存在或已完成"
);
resp
.
setCode
(
SysCode
.
VALIDATE_ERROR
);
resp
.
setSuccess
(
false
);
return
resp
;
}
//增加批注
if
(
req
.
getComments
()!=
null
)
{
taskService
.
addComment
(
req
.
getTaskId
(),
null
,
req
.
getComments
());
}
Map
<
String
,
Object
>
variables
=
null
;
if
(
req
.
getVariables
()==
null
)
{
variables
=
new
HashMap
<
String
,
Object
>();
}
else
{
variables
=
req
.
getVariables
();
}
variables
.
put
(
"userId"
,
task
.
getAssignee
());
taskService
.
complete
(
req
.
getTaskId
(),
variables
);
resp
.
setSuccess
(
true
);
resp
.
setMessage
(
"任务办理成功"
);
resp
.
setCode
(
SysCode
.
SUCCESS_CODE
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"任务办理失败"
,
e
);
resp
.
setSuccess
(
false
);
resp
.
setMessage
(
"任务办理失败"
+
e
.
getMessage
());
resp
.
setCode
(
SysCode
.
SYS_ERROR
);
}
Task
task
=
taskService
.
createTaskQuery
().
taskId
(
req
.
getTaskId
()).
singleResult
();
//校验参数
if
(
task
==
null
||
task
.
getId
()
==
null
)
{
resp
.
setMessage
(
"任务不存在或已完成"
);
resp
.
setCode
(
SysCode
.
VALIDATE_ERROR
);
resp
.
setSuccess
(
false
);
return
resp
;
}
//增加批注
if
(
req
.
getComments
()
!=
null
)
{
taskService
.
addComment
(
req
.
getTaskId
(),
null
,
req
.
getComments
());
}
Map
<
String
,
Object
>
variables
=
null
;
if
(
req
.
getVariables
()
==
null
)
{
variables
=
new
HashMap
<
String
,
Object
>();
}
else
{
variables
=
req
.
getVariables
();
}
variables
.
put
(
"userId"
,
task
.
getAssignee
());
taskService
.
complete
(
req
.
getTaskId
(),
variables
);
resp
.
setSuccess
(
true
);
resp
.
setMessage
(
"任务办理成功"
);
resp
.
setCode
(
SysCode
.
SUCCESS_CODE
);
}
catch
(
Exception
e
)
{
Log
.
error
(
"任务办理失败"
,
e
);
resp
.
setSuccess
(
false
);
resp
.
setMessage
(
"任务办理失败"
+
e
.
getMessage
());
resp
.
setCode
(
SysCode
.
SYS_ERROR
);
}
return
resp
;
}
/**
* 带当前节点的流程图
*
* @param request
* @return
*/
@RequestMapping
(
"/process/trace/current"
)
@ApiOperation
(
value
=
"流程图获取接口"
,
notes
=
"获取当前流程的流程图"
)
@ResponseBody
public
void
traceProcessImage
(
SpecialRequest
request
,
HttpServletResponse
response
)
{
try
{
byte
[]
bytes
=
activitiService
.
traceProcessImage
(
request
);
OutputStream
toClient
=
response
.
getOutputStream
();
toClient
.
write
(
bytes
);
toClient
.
flush
();
toClient
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
/*@RequestMapping("/process/trace/current")
@ApiOperation(value = "流程图获取接口", notes = "获取当前流程的流程图")
@ResponseBody
public void traceProcessImage(SpecialRequest request, HttpServletResponse response) {
FileInputStream fis = null;
OutputStream os = null;
try {
byte[] bytes = activitiService.traceProcessImage(request);
File file = new File("D:\\" + 1 + ".jpg");
OutputStream out = new FileOutputStream(file);
out.write(bytes);
out.flush();
System.out.println("download success");
out.close();
//得到文件大小
FileInputStream hFile = new FileInputStream("D:/1.jpg");
int i=hFile.available();
//读数据
byte data[]=new byte[i];
//得到向客户端输出二进制数据的对象
hFile.read(data);
//输出数据
OutputStream toClient=response.getOutputStream();
toClient.write(data);
toClient.flush();
toClient.close();
hFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}*/
}
src/main/java/com/bbd/bpm/controller/user/UserWebController.java
View file @
aa25e164
...
...
@@ -5,6 +5,7 @@ import com.bbd.bpm.result.Result;
import
com.bbd.bpm.service.UserInfoService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.ModelMap
;
import
org.springframework.web.bind.annotation.*
;
/**
* 用户功能模块管理
...
...
@@ -102,6 +103,18 @@ public class UserWebController {
return
"deployment/importDeployment"
;
}
/**
* @Author:cwd
* @Description:进入组织管理
* @Date: 2019/03/04 22:53
* @Param:
* @return
**/
@GetMapping
(
value
=
"toSee"
)
public
String
toSee
(
String
taskId
,
String
executionId
,
ModelMap
modelMap
){
modelMap
.
addAttribute
(
"taskId"
,
taskId
);
modelMap
.
addAttribute
(
"executionId"
,
executionId
);
return
"deployment/deplyment"
;
}
}
src/main/java/com/bbd/bpm/dto/request/SpecialRequest.java
0 → 100644
View file @
aa25e164
package
com
.
bbd
.
bpm
.
dto
.
request
;
import
java.io.Serializable
;
/**
* Created by yanlj on 2017/10/19.
*/
public
class
SpecialRequest
implements
Serializable
{
private
String
userToken
;
private
String
taskId
;
private
String
executionId
;
private
String
processInstanceId
;
private
String
procdefId
;
public
String
getUserToken
()
{
return
userToken
;
}
public
void
setUserToken
(
String
userToken
)
{
this
.
userToken
=
userToken
;
}
public
String
getTaskId
()
{
return
taskId
;
}
public
void
setTaskId
(
String
taskId
)
{
this
.
taskId
=
taskId
;
}
public
String
getExecutionId
()
{
return
executionId
;
}
public
void
setExecutionId
(
String
executionId
)
{
this
.
executionId
=
executionId
;
}
public
String
getProcessInstanceId
()
{
return
processInstanceId
;
}
public
void
setProcessInstanceId
(
String
processInstanceId
)
{
this
.
processInstanceId
=
processInstanceId
;
}
public
String
getProcdefId
()
{
return
procdefId
;
}
public
void
setProcdefId
(
String
procdefId
)
{
this
.
procdefId
=
procdefId
;
}
}
src/main/java/com/bbd/bpm/dto/response/QueryPiByUserIdBean.java
View file @
aa25e164
...
...
@@ -18,6 +18,12 @@ public class QueryPiByUserIdBean {
private
String
processNodeName
;
private
String
taskId
;
private
String
executionId
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
startTime
;
...
...
@@ -91,4 +97,21 @@ public class QueryPiByUserIdBean {
public
void
setProcessNodeName
(
String
processNodeName
)
{
this
.
processNodeName
=
processNodeName
;
}
public
String
getExecutionId
()
{
return
executionId
;
}
public
void
setExecutionId
(
String
executionId
)
{
this
.
executionId
=
executionId
;
}
public
String
getTaskId
()
{
return
taskId
;
}
public
void
setTaskId
(
String
taskId
)
{
this
.
taskId
=
taskId
;
}
}
src/main/java/com/bbd/bpm/service/ActivitiService.java
0 → 100644
View file @
aa25e164
package
com
.
bbd
.
bpm
.
service
;
import
com.bbd.bpm.dto.request.SpecialRequest
;
import
java.io.IOException
;
/**
* Created by yanlj on 2017/9/1.
*/
public
interface
ActivitiService
{
/**
* 带跟踪的图片
*
* @param request
* @return
*/
byte
[]
traceProcessImage
(
SpecialRequest
request
)
throws
IOException
;
}
src/main/java/com/bbd/bpm/serviceImpl/ActivitiServiceImpl.java
0 → 100644
View file @
aa25e164
package
com
.
bbd
.
bpm
.
serviceImpl
;
import
com.bbd.bpm.dto.request.SpecialRequest
;
import
com.bbd.bpm.service.ActivitiService
;
import
org.activiti.bpmn.model.BpmnModel
;
import
org.activiti.engine.*
;
import
org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl
;
import
org.activiti.engine.impl.context.Context
;
import
org.activiti.engine.runtime.Execution
;
import
org.activiti.engine.runtime.ProcessInstance
;
import
org.activiti.engine.task.Task
;
import
org.activiti.image.ProcessDiagramGenerator
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* Created by yanlj on 2017/9/1.
*/
@Component
(
"activitiService"
)
public
class
ActivitiServiceImpl
implements
ActivitiService
{
@Autowired
private
RepositoryService
repositoryService
;
@Autowired
private
RuntimeService
runtimeService
;
@Autowired
private
TaskService
taskService
;
@Autowired
private
ProcessEngineConfiguration
processEngineConfiguration
;
@Autowired
private
ProcessEngine
processEngine
;
@Override
public
byte
[]
traceProcessImage
(
SpecialRequest
request
)
throws
IOException
{
Execution
execution
=
null
;
if
(
StringUtils
.
isNotBlank
(
request
.
getExecutionId
()))
{
execution
=
runtimeService
.
createExecutionQuery
().
executionId
(
request
.
getExecutionId
()).
singleResult
();
//执行实例
}
if
(
execution
==
null
)
{
if
(
StringUtils
.
isNotBlank
(
request
.
getTaskId
()))
{
Task
task
=
taskService
.
createTaskQuery
().
taskId
(
request
.
getTaskId
()).
singleResult
();
if
(
task
!=
null
)
{
execution
=
runtimeService
.
createExecutionQuery
().
executionId
(
task
.
getExecutionId
()).
singleResult
();
//执行实例
}
}
}
ProcessInstance
processInstance
=
runtimeService
.
createProcessInstanceQuery
().
processInstanceId
(
execution
.
getProcessInstanceId
()).
singleResult
();
BpmnModel
bpmnModel
=
repositoryService
.
getBpmnModel
(
processInstance
.
getProcessDefinitionId
());
List
<
String
>
activeActivityIds
=
runtimeService
.
getActiveActivityIds
(
execution
.
getId
());
// 使用spring注入引擎请使用下面的这行代码
processEngineConfiguration
=
processEngine
.
getProcessEngineConfiguration
();
Context
.
setProcessEngineConfiguration
((
ProcessEngineConfigurationImpl
)
processEngineConfiguration
);
ProcessDiagramGenerator
diagramGenerator
=
processEngineConfiguration
.
getProcessDiagramGenerator
();
InputStream
imageStream
=
diagramGenerator
.
generateDiagram
(
bpmnModel
,
"png"
,
activeActivityIds
,
new
ArrayList
<
String
>(),
"宋体"
,
"宋体"
,
null
,
null
,
1.0
);
byte
[]
bytes
=
IOUtils
.
toByteArray
(
imageStream
);
return
bytes
;
}
}
src/main/resources/templates/deployment/deplyment.html
0 → 100644
View file @
aa25e164
<!DOCTYPE html>
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xmlns:th=
"http://www.thymeleaf.org"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
Title
</title>
<link
rel=
"stylesheet"
th:href=
"@{/css/common/base.css}"
/>
<link
rel=
"stylesheet"
th:href=
"@{/css/common/page_new.css}"
/>
<link
rel=
"stylesheet"
th:href=
"@{/js/plugins/bootstrapselect/css/product_list.css}"
/>
<link
rel=
"stylesheet"
th:href=
"@{/css/layui.css}"
media=
"all"
>
<link
rel=
"stylesheet"
href=
"https://unpkg.com/element-ui/lib/theme-chalk/index.css"
>
<script
src=
"https://unpkg.com/element-ui/lib/index.js"
></script>
</head>
<style>
#goBack
{
background
:
#fff
no-repeat
5px
center
;
}
</style>
<body>
<div
class=
"box"
>
<h2><span></span>
流程查看
<button
id=
"goBack"
onclick=
"javascript:history.go(-1)"
style=
"margin-right: 100px"
>
返回
</button><button
onclick=
"location.reload()"
>
刷新
</button></h2>
<img
id=
"image"
>
</div>
<input
type=
"hidden"
id=
"taskId"
th:value=
"${taskId}"
>
<input
type=
"hidden"
id=
"executionId"
th:value=
"${executionId}"
>
</body>
</html>
<script
src=
"/js/plugins/jquery.min.js"
></script>
<script
src=
"/js/plugins/layer/layer.js"
></script>
<script
src=
"/js/layui.js"
></script>
<script
type=
"text/javascript"
src=
"/js/plugins/page_new.js"
></script>
<script>
$
(
function
()
{
var
taskId
=
$
(
"#taskId"
).
val
()
var
executionId
=
$
(
"#executionId"
).
val
()
var
url
=
"http://localhost:8087/api/bpm/task/process/trace/current?executionId="
+
executionId
+
"&taskId="
+
taskId
$
(
"#image"
).
attr
(
"src"
,
url
)
})
</script>
src/main/resources/templates/deployment/initiatedDeployList.html
View file @
aa25e164
...
...
@@ -144,7 +144,7 @@
var
total
=
data
.
total
;
data
=
data
.
list
;
var
content
=
''
;
content
+=
'<thead><tr><th>流程实例Id</th><th>流程名称</th><th style="width: 8%">业务密钥</th><th>当前审批人</th><th style="width: 8%">审批节点名称</th><th style="width: 8%">审批开始时间</th><th style="width: 8%">审批结束时间</th></tr></thead>'
;
content
+=
'<thead><tr><th>流程实例Id</th><th>流程名称</th><th style="width: 8%">业务密钥</th><th>当前审批人</th><th style="width: 8%">审批节点名称</th><th style="width: 8%">审批开始时间</th><th style="width: 8%">审批结束时间</th><
th style="width: 8%">操作</th><
/tr></thead>'
;
if
(
data
!=
null
){
for
(
var
i
in
data
)
{
if
(
data
[
i
].
endTime
==
null
){
...
...
@@ -158,6 +158,11 @@
content
+=
'<td class="product_name" style="width: 5%;">'
+
data
[
i
].
processNodeName
+
'</td>'
;
content
+=
'<td class="product_name" style="width: 5%;">'
+
data
[
i
].
startTime
+
'</td>'
;
content
+=
'<td class="product_name" style="width: 5%;">'
+
data
[
i
].
endTime
+
'</td>'
;
if
(
data
[
i
].
name
==
'已审批完成'
){
content
+=
'<td class="cao_zuo" disabled><span style="width: 16%">完成</span>'
;
}
else
{
content
+=
'<td class="cao_zuo"><span style="width: 16%" onclick="toActivityDetail('
+
data
[
i
].
taskId
+
',
\'
'
+
data
[
i
].
executionId
+
'
\'
)">查看</span>'
;
}
content
+=
'</tr></tbody>'
;
}
$
(
'#pages'
).
text
(
pages
);
...
...
@@ -202,6 +207,13 @@
},
'json'
)
flushHtml
(
null
,
taskStatus
);
}
/*查看流程 */
function
toActivityDetail
(
taskId
,
executionId
)
{
location
.
href
=
"/web/bpm/user/toSee?taskId="
+
taskId
+
"&executionId="
+
executionId
}
</script>
...
...
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