Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
workflow-core
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
黄夏豪
workflow-core
Commits
e08a6057
提交
e08a6057
authored
3月 04, 2021
作者:
zhoushaopan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
第一次提交
上级
e69ff4ee
隐藏空白字符变更
内嵌
并排
正在显示
49 个修改的文件
包含
2302 行增加
和
3 行删除
+2302
-3
pom.xml
pom.xml
+64
-1
WorkflowCoreRunner.java
src/main/java/com/tykj/workflowcore/WorkflowCoreRunner.java
+21
-2
FlowableConfig.java
...j/workflowcore/workflow_editer/config/FlowableConfig.java
+21
-0
Swagger2Config.java
...j/workflowcore/workflow_editer/config/Swagger2Config.java
+37
-0
WebMvcConfig.java
...ykj/workflowcore/workflow_editer/config/WebMvcConfig.java
+45
-0
FlowsInfoController.java
...wcore/workflow_editer/controller/FlowsInfoController.java
+113
-0
FormPageController.java
...owcore/workflow_editer/controller/FormPageController.java
+53
-0
PageEntityController.java
...core/workflow_editer/controller/PageEntityController.java
+34
-0
WorkFlowController.java
...owcore/workflow_editer/controller/WorkFlowController.java
+81
-0
FlowsInfo.java
...m/tykj/workflowcore/workflow_editer/entity/FlowsInfo.java
+66
-0
FormPage.java
...om/tykj/workflowcore/workflow_editer/entity/FormPage.java
+53
-0
NodePage.java
...om/tykj/workflowcore/workflow_editer/entity/NodePage.java
+40
-0
PageEntity.java
.../tykj/workflowcore/workflow_editer/entity/PageEntity.java
+40
-0
Result.java
.../com/tykj/workflowcore/workflow_editer/entity/Result.java
+27
-0
Role.java
...va/com/tykj/workflowcore/workflow_editer/entity/Role.java
+29
-0
SiteMessage.java
...tykj/workflowcore/workflow_editer/entity/SiteMessage.java
+51
-0
User.java
...va/com/tykj/workflowcore/workflow_editer/entity/User.java
+35
-0
VariableStorage.java
.../workflowcore/workflow_editer/entity/VariableStorage.java
+39
-0
TypeEnums.java
...om/tykj/workflowcore/workflow_editer/enums/TypeEnums.java
+41
-0
AssigneeListener.java
...rkflowcore/workflow_editer/listener/AssigneeListener.java
+25
-0
FlowsInfoMapper.java
.../workflowcore/workflow_editer/mapper/FlowsInfoMapper.java
+24
-0
FormPageMapper.java
...j/workflowcore/workflow_editer/mapper/FormPageMapper.java
+18
-0
NodePageMapper.java
...j/workflowcore/workflow_editer/mapper/NodePageMapper.java
+25
-0
PageEntityMapper.java
...workflowcore/workflow_editer/mapper/PageEntityMapper.java
+16
-0
RoleMapper.java
.../tykj/workflowcore/workflow_editer/mapper/RoleMapper.java
+18
-0
UserMapper.java
.../tykj/workflowcore/workflow_editer/mapper/UserMapper.java
+17
-0
VariableStorageMapper.java
...lowcore/workflow_editer/mapper/VariableStorageMapper.java
+23
-0
FlowInfoService.java
...workflowcore/workflow_editer/service/FlowInfoService.java
+54
-0
FormPageService.java
...workflowcore/workflow_editer/service/FormPageService.java
+46
-0
NodePageService.java
...workflowcore/workflow_editer/service/NodePageService.java
+26
-0
PageEntityService.java
...rkflowcore/workflow_editer/service/PageEntityService.java
+22
-0
UserService.java
...ykj/workflowcore/workflow_editer/service/UserService.java
+27
-0
VariableStorageService.java
...wcore/workflow_editer/service/VariableStorageService.java
+28
-0
WorkFlowService.java
...workflowcore/workflow_editer/service/WorkFlowService.java
+121
-0
FlowInfoServiceImpl.java
...ore/workflow_editer/service/impl/FlowInfoServiceImpl.java
+77
-0
FormPageServiceImpl.java
...ore/workflow_editer/service/impl/FormPageServiceImpl.java
+67
-0
NodePageServiceImpl.java
...ore/workflow_editer/service/impl/NodePageServiceImpl.java
+32
-0
PageEntityServiceImpl.java
...e/workflow_editer/service/impl/PageEntityServiceImpl.java
+29
-0
VariableStorageServiceImpl.java
...kflow_editer/service/impl/VariableStorageServiceImpl.java
+33
-0
WorkFlowServiceImpl.java
...ore/workflow_editer/service/impl/WorkFlowServiceImpl.java
+345
-0
PageUtil.java
.../com/tykj/workflowcore/workflow_editer/util/PageUtil.java
+56
-0
DeployedVo.java
.../com/tykj/workflowcore/workflow_editer/vo/DeployedVo.java
+34
-0
FlowsInfoVo.java
...com/tykj/workflowcore/workflow_editer/vo/FlowsInfoVo.java
+56
-0
FormPageVo.java
.../com/tykj/workflowcore/workflow_editer/vo/FormPageVo.java
+40
-0
PageVo.java
...java/com/tykj/workflowcore/workflow_editer/vo/PageVo.java
+34
-0
StartFlowVo.java
...com/tykj/workflowcore/workflow_editer/vo/StartFlowVo.java
+30
-0
TaskVo.java
...java/com/tykj/workflowcore/workflow_editer/vo/TaskVo.java
+43
-0
WorkFlowVo.java
.../com/tykj/workflowcore/workflow_editer/vo/WorkFlowVo.java
+28
-0
application.properties
src/main/resources/application.properties
+18
-0
没有找到文件。
pom.xml
浏览文件 @
e08a6057
...
...
@@ -5,7 +5,7 @@
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.4.
3
</version>
<version>
2.4.
1
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.tykj
</groupId>
...
...
@@ -21,12 +21,75 @@
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-jpa
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<!-- 下面是我引入的东西 zsp-->
<dependency>
<groupId>
com.github.caspar-chen
</groupId>
<artifactId>
swagger-ui-layer
</artifactId>
<version>
1.1.3
</version>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
<version>
2.8.0
</version>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
<version>
2.8.0
</version>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<scope>
runtime
</scope>
</dependency>
<!--flowable整合springboot-->
<dependency>
<groupId>
org.flowable
</groupId>
<artifactId>
flowable-spring-boot-starter
</artifactId>
<version>
6.6.0
</version>
</dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<artifactId>
hutool-all
</artifactId>
<version>
5.5.8
</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.54
</version>
<scope>
compile
</scope>
</dependency>
<dependency>
<groupId>
com.github.wenhao
</groupId>
<artifactId>
jpa-spec
</artifactId>
<version>
3.1.1
</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<!-- dom4j -->
<dependency>
<groupId>
dom4j
</groupId>
<artifactId>
dom4j
</artifactId>
<version>
1.6.1
</version>
</dependency>
</dependencies>
<build>
...
...
src/main/java/com/tykj/workflowcore/WorkflowCoreRunner.java
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.stereotype.Component
;
import
java.io.File
;
/**
* @author HuangXiahao
* @version V1.0
...
...
@@ -13,10 +15,27 @@ import org.springframework.stereotype.Component;
@Component
public
class
WorkflowCoreRunner
implements
CommandLineRunner
{
@Bean
ClassLoader
initClassLoader
(){
return
getClass
().
getClassLoader
();
}
@Override
public
void
run
(
String
...
args
)
{
System
.
out
.
println
(
getClass
().
getClassLoader
());
System
.
out
.
println
(
"核心成功启动"
);
//创建xml文件夹 如果不存在的话
createXmlMkdir
();
}
public
void
createXmlMkdir
(){
File
file
=
new
File
(
this
.
getClass
().
getClassLoader
().
getResource
(
""
).
getPath
()+
"\\xml"
);
if
(!
file
.
exists
()){
file
.
mkdir
();
}
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/config/FlowableConfig.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
config
;
import
org.flowable.spring.SpringProcessEngineConfiguration
;
import
org.flowable.spring.boot.EngineConfigurationConfigurer
;
import
org.springframework.context.annotation.Configuration
;
/**
* 为解决flowable图片中的中文乱码
* @author zhoushaopan
*/
@Configuration
public
class
FlowableConfig
implements
EngineConfigurationConfigurer
<
SpringProcessEngineConfiguration
>
{
@Override
public
void
configure
(
SpringProcessEngineConfiguration
engineConfiguration
)
{
engineConfiguration
.
setActivityFontName
(
"宋体"
);
engineConfiguration
.
setLabelFontName
(
"宋体"
);
engineConfiguration
.
setAnnotationFontName
(
"宋体"
);
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/config/Swagger2Config.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.service.ApiInfo
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
/**
* ClassName: Swagger2Config
* Package: com.tykj.config
* Description: swagger配置
* @Author: zsp
*/
@Configuration
@EnableSwagger2
public
class
Swagger2Config
{
@Bean
public
Docket
createRestApi
()
{
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
apiInfo
(
apiInfo
()).
select
()
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.tykj"
))
.
paths
(
PathSelectors
.
any
()).
build
();
}
private
ApiInfo
apiInfo
()
{
return
new
ApiInfoBuilder
()
.
title
(
"工作流开发"
)
.
description
(
"工作流开发接口文档与测试页面"
)
.
version
(
"v1.0"
)
.
build
();
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/config/WebMvcConfig.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
config
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
/**
* @author zsp
* @version V1.0
* @class WebMvcConfig
* @packageName com.example.personnelmanager.common.config
* @data 2020/6/11
**/
@Configuration
public
class
WebMvcConfig
{
@Value
(
"${file.path}"
)
String
filePath
;
@Bean
public
WebMvcConfigurer
corsConfigurer
()
{
return
new
WebMvcConfigurer
()
{
@Override
public
void
addCorsMappings
(
CorsRegistry
registry
)
{
registry
.
addMapping
(
"/**"
)
.
allowedOriginPatterns
(
"*"
)
.
allowCredentials
(
true
)
.
allowedMethods
(
"GET"
,
"POST"
,
"DELETE"
,
"PUT"
,
"PATCH"
)
.
maxAge
(
3600
);
}
/*
* 静态资源配置
**/
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
registry
.
addResourceHandler
(
"/file/**"
).
addResourceLocations
(
"file:"
+
filePath
);
}
};
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/controller/FlowsInfoController.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
controller
;
import
com.tykj.workflowcore.workflow_editer.entity.FlowsInfo
;
import
com.tykj.workflowcore.workflow_editer.service.FlowInfoService
;
import
com.tykj.workflowcore.workflow_editer.service.NodePageService
;
import
com.tykj.workflowcore.workflow_editer.service.VariableStorageService
;
import
com.tykj.workflowcore.workflow_editer.service.WorkFlowService
;
import
com.tykj.workflowcore.workflow_editer.vo.DeployedVo
;
import
com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo
;
import
com.tykj.workflowcore.workflow_editer.vo.PageVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.FileNotFoundException
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* ClassName: FlowsInfoController
* Package: com.tykj.controller
* Description:
* Datetime: 2021/2/24 10:13
* @Author: zsp
*/
@RestController
@Api
(
"流程管理接口"
)
@RequestMapping
(
"/flowsInfo"
)
public
class
FlowsInfoController
{
@Autowired
private
FlowInfoService
flowInfoService
;
@Autowired
private
WorkFlowService
workFlowService
;
@Autowired
private
NodePageService
nodePageService
;
@Autowired
private
VariableStorageService
variableStorageService
;
@PostMapping
(
"/getAllFlowsInfo"
)
@ApiOperation
(
value
=
"查询所有流程"
,
notes
=
"分页查询"
)
public
Page
<
FlowsInfo
>
getAllFlowsInfo
(
@RequestBody
PageVo
pageVo
){
if
(
pageVo
.
getPageNum
()
==
0
){
pageVo
.
setPageNum
(
1
);
}
return
flowInfoService
.
getAllFlowsInfo
(
pageVo
);
}
@PostMapping
(
"/getDeployedFlowsInfo"
)
@ApiOperation
(
value
=
"查询已经部署的流程"
)
public
List
<
DeployedVo
>
getDeployedFlowsInfo
(){
ArrayList
<
DeployedVo
>
deployedVos
=
new
ArrayList
<>();
//查询已经部署的流程
List
<
FlowsInfo
>
deployedFlowsInfo
=
flowInfoService
.
getDeployedFlowsInfo
();
for
(
FlowsInfo
flowsInfo
:
deployedFlowsInfo
)
{
String
flowKey
=
flowsInfo
.
getFlowKey
();
String
flowName
=
flowsInfo
.
getFlowName
();
String
startId
=
flowsInfo
.
getStartId
();
DeployedVo
deployedVo
=
new
DeployedVo
();
BeanUtils
.
copyProperties
(
flowsInfo
,
deployedVo
);
//通过节点id得到pageId
Long
pageId
=
nodePageService
.
findByNodeId
(
startId
);
deployedVo
.
setPageId
(
pageId
);
deployedVos
.
add
(
deployedVo
);
}
return
deployedVos
;
}
@PostMapping
(
"/saveXml"
)
@ApiOperation
(
"保存xml"
)
public
String
saveXml
(
@RequestParam
(
"file"
)
MultipartFile
file
){
String
xml
=
workFlowService
.
saveXml
(
file
);
return
xml
;
}
@GetMapping
(
"/deploy/{id}"
)
@ApiOperation
(
value
=
"部署流程"
,
notes
=
"0 部署成功"
)
public
Integer
deploy
(
@PathVariable
(
"id"
)
Long
id
)
throws
FileNotFoundException
{
//根据id 查询出flowsInfo
FlowsInfo
flowsInfo
=
flowInfoService
.
findById
(
id
);
if
(
flowsInfo
.
getState
()
==
0
){
return
0
;
}
workFlowService
.
deployXml
(
flowsInfo
);
return
flowsInfo
.
getState
();
}
@PostMapping
(
"/saveXml02"
)
@ApiOperation
(
value
=
"保存xml02"
)
public
void
saveXml02
(
@RequestBody
FlowsInfoVo
flowsInfoVo
)
{
workFlowService
.
flowXml
(
flowsInfoVo
);
}
@PostMapping
(
"/updateByProcessName"
)
@ApiOperation
(
value
=
"通过流程名称修改"
)
public
void
updateByProcessName
(
@RequestBody
FlowsInfoVo
flowsInfoVo
)
{
flowInfoService
.
findByFlowName
(
flowsInfoVo
);
}
@PostMapping
(
"/updateByDesc"
)
@ApiOperation
(
value
=
"通过流程描述修改"
)
public
void
updateByDesc
(
@RequestBody
FlowsInfoVo
flowsInfoVo
)
{
flowInfoService
.
findByDesc
(
flowsInfoVo
);
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/controller/FormPageController.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
controller
;
import
com.tykj.workflowcore.workflow_editer.entity.FormPage
;
import
com.tykj.workflowcore.workflow_editer.service.FormPageService
;
import
com.tykj.workflowcore.workflow_editer.vo.FormPageVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* ClassName: FormPageController
* Package: com.tykj.controller
* Description:
* Datetime: 2021/3/3 13:40
*
* @Author: zsp
*/
@RestController
(
"/formPage"
)
@RequestMapping
@Api
(
"页面管理接口"
)
public
class
FormPageController
{
@Autowired
private
FormPageService
formPageService
;
@ApiOperation
(
"保存页面"
)
@PostMapping
(
"/savePage"
)
public
Long
savePage
(
@RequestBody
FormPage
formPage
){
return
formPageService
.
savePage
(
formPage
);
}
@ApiOperation
(
"回显页面"
)
@GetMapping
(
"/EchoPage/{id}"
)
public
FormPageVo
EchoPage
(
@PathVariable
(
"id"
)
Long
id
){
return
formPageService
.
getPage
(
id
);
}
@ApiOperation
(
"查看页面"
)
@GetMapping
(
"/findPages"
)
public
List
<
FormPageVo
>
findPages
(){
return
formPageService
.
getAllPages
();
}
@ApiOperation
(
"删除页面"
)
@DeleteMapping
(
"deletePage/{id}"
)
public
void
deletePage
(
@PathVariable
(
"id"
)
Long
id
){
formPageService
.
deletePage
(
id
);
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/controller/PageEntityController.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
controller
;
import
com.tykj.workflowcore.workflow_editer.entity.PageEntity
;
import
com.tykj.workflowcore.workflow_editer.service.PageEntityService
;
import
io.swagger.annotations.Api
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* ClassName: PageEntityController
* Package: com.tykj.controller
* Description:
* Datetime: 2021/3/4 9:50
*
* @Author: zsp
*/
@RestController
@RequestMapping
(
"/pageEntity"
)
@Api
(
"页面跟实体的管理"
)
public
class
PageEntityController
{
@Autowired
private
PageEntityService
pageEntityService
;
@PostMapping
(
"/savePageEntity"
)
public
void
savePageEntity
(
@RequestBody
PageEntity
pageEntity
){
pageEntityService
.
savePageEntity
(
pageEntity
);
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/controller/WorkFlowController.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
controller
;
import
com.tykj.workflowcore.workflow_editer.entity.FlowsInfo
;
import
com.tykj.workflowcore.workflow_editer.service.FlowInfoService
;
import
com.tykj.workflowcore.workflow_editer.service.WorkFlowService
;
import
com.tykj.workflowcore.workflow_editer.util.PageUtil
;
import
com.tykj.workflowcore.workflow_editer.vo.PageVo
;
import
com.tykj.workflowcore.workflow_editer.vo.StartFlowVo
;
import
com.tykj.workflowcore.workflow_editer.vo.TaskVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.io.FileNotFoundException
;
import
java.util.List
;
import
java.util.Map
;
/**
* ClassName: WorkFlowController
* Package: com.tykj.controller
* Description:
* Datetime: 2021/3/2 9:48
*
* @Author: zsp
*/
@Api
(
"工作流管理接口"
)
@RestController
@RequestMapping
(
"/workFlow"
)
public
class
WorkFlowController
{
@Autowired
private
FlowInfoService
flowInfoService
;
@Autowired
private
WorkFlowService
workFlowService
;
@PostMapping
(
"/deploy"
)
@ApiOperation
(
value
=
"部署流程"
,
notes
=
"0 部署成功"
)
public
Integer
deploy
(
Long
id
)
throws
FileNotFoundException
{
//根据id 查询出flowsInfo
FlowsInfo
flowsInfo
=
flowInfoService
.
findById
(
id
);
if
(
flowsInfo
.
getState
()
==
0
){
return
0
;
}
workFlowService
.
deployXml
(
flowsInfo
);
return
flowsInfo
.
getState
();
}
@PostMapping
(
"/startFlow"
)
@ApiOperation
(
"开启流程"
)
public
String
startFlow
(
@RequestBody
StartFlowVo
startFlowVo
){
workFlowService
.
startFlow
(
startFlowVo
);
return
null
;
}
@PostMapping
(
"/findUserTask"
)
@ApiOperation
(
"任务个人待办列表"
)
public
List
<
Map
<
String
,
Object
>>
findUserTask
(
@RequestBody
PageVo
pageVo
){
List
<
Map
<
String
,
Object
>>
mapList
=
workFlowService
.
findTaskByUserId
(
pageVo
.
getUserId
());
List
list
=
PageUtil
.
startPage
(
mapList
,
pageVo
.
getPageNum
(),
pageVo
.
getPageSize
());
return
list
;
}
@PostMapping
(
"/findTaskDetail"
)
@ApiOperation
(
"任务个人待办详情"
)
public
List
<
Map
<
String
,
Object
>>
findTaskDetail
(
Long
userId
,
String
taskId
){
return
workFlowService
.
findTaskDetail
(
userId
,
taskId
);
}
@PostMapping
(
"/completeTask"
)
@ApiOperation
(
"完成任务"
)
public
void
completeTask
(
@RequestBody
TaskVo
taskVo
){
workFlowService
.
completeTask
(
taskVo
);
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/entity/FlowsInfo.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
entity
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
java.util.Date
;
/**
* ClassName: FlowsInfo
* Package: com.tykj.entity
* Description:
* Datetime: 2021/2/23 10:12
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api
(
"流程表"
)
public
class
FlowsInfo
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@ApiModelProperty
(
"流程id"
)
private
Long
id
;
@ApiModelProperty
(
"发起人的Id"
)
private
Long
userId
;
@ApiModelProperty
(
"发起人的名字"
)
private
Long
userName
;
@ApiModelProperty
(
"流程名称"
)
private
String
flowName
;
@ApiModelProperty
(
"资源名称"
)
private
String
resourceName
;
@ApiModelProperty
(
"流程主键"
)
private
String
flowKey
;
@ApiModelProperty
(
value
=
"部署状态"
,
notes
=
"0 已部署,1 未部署"
)
private
Integer
state
;
@ApiModelProperty
(
"文件路径"
)
private
String
filePath
;
@ApiModelProperty
(
"流程创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
"流程修改时间"
)
private
Date
updateTime
;
@ApiModelProperty
(
"流程描述"
)
private
String
flowDescribe
;
@ApiModelProperty
(
"开始节点的id"
)
private
String
startId
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/entity/FormPage.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
entity
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.*
;
import
java.util.Date
;
/**
* ClassName: FormPage
* Package: com.tykj.entity
* Description:
* Datetime: 2021/3/3 10:32
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api
(
"表单页面"
)
public
class
FormPage
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@ApiModelProperty
(
"主键id"
)
private
Long
id
;
@ApiModelProperty
(
"页面名称"
)
private
String
pageName
;
@ApiModelProperty
(
"页面描述"
)
private
String
pageDesc
;
@ApiModelProperty
(
"模板"
)
@Lob
private
String
template
;
@ApiModelProperty
(
"页面js"
)
@Lob
private
String
js
;
@ApiModelProperty
(
"页面css"
)
@Lob
private
String
css
;
@ApiModelProperty
(
"创建的时间"
)
private
Date
createTime
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/entity/NodePage.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
entity
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
/**
* ClassName: NodePage
* Package: com.tykj.entity
* Description:
* Datetime: 2021/3/3 13:08
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api
(
"节点所在页面"
)
public
class
NodePage
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@ApiModelProperty
(
"主键id"
)
private
Long
id
;
@ApiModelProperty
(
"节点id"
)
private
String
nodeId
;
@ApiModelProperty
(
"页面id"
)
private
long
pageId
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/entity/PageEntity.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
entity
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
/**
* ClassName: PageEntity
* Package: com.tykj.entity
* Description:
* Datetime: 2021/3/3 10:51
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api
(
"页面实体关系"
)
public
class
PageEntity
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@ApiModelProperty
(
"主键id"
)
private
Long
id
;
@ApiModelProperty
(
"页面Id"
)
private
Long
pageId
;
@ApiModelProperty
(
"实体类Id"
)
private
Long
entityId
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/entity/Result.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
entity
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* ClassName: Result
* Package: com.tykj.entity
* Description: 返回类型
* Datetime: 2021/2/23 10:18
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Api
(
"统一返回结果集"
)
public
class
Result
{
@ApiModelProperty
(
"返回状态"
)
private
Integer
status
;
@ApiModelProperty
(
"返回信息"
)
private
String
message
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/entity/Role.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.*
;
import
java.util.List
;
/**
* ClassName: Role
* Package: com.tykj.entity
* Description:
* Datetime: 2021/2/23 15:05
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public
class
Role
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
private
String
roleName
;
@Transient
List
<
User
>
userList
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/entity/SiteMessage.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
entity
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
java.util.Date
;
/**
* ClassName: SiteMessage
* Package: com.tykj.entity
* Description:
* Datetime: 2021/2/23 10:29
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api
(
"消息发送"
)
public
class
SiteMessage
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@ApiModelProperty
(
"消息id"
)
private
Long
id
;
@ApiModelProperty
(
"用户id"
)
private
Integer
userId
;
@ApiModelProperty
(
value
=
"消息类型"
,
notes
=
"1 待办任务"
)
private
Integer
type
;
@ApiModelProperty
(
"消息内容"
)
private
String
content
;
@ApiModelProperty
(
value
=
"是否已读"
,
notes
=
"0 已读 1 未读"
)
private
Integer
isRead
;
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
"更新时间"
)
private
Date
updateTime
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/entity/User.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
entity
;
import
io.swagger.annotations.Api
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
java.io.Serializable
;
/**
* ClassName: User
* Package: com.tykj.entity
* Description:
* Datetime: 2021/2/23 14:47
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Api
(
"用户表"
)
public
class
User
implements
Serializable
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
private
Long
id
;
private
String
userName
;
private
String
passWord
;
private
String
age
;
private
String
birthday
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/entity/VariableStorage.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
/**
* ClassName: VariableStorage
* Package: com.tykj.entity
* Description:
* Datetime: 2021/3/3 10:03
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public
class
VariableStorage
{
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
@ApiModelProperty
(
"主键id"
)
private
Long
id
;
@ApiModelProperty
(
"流程主键"
)
private
String
flowKey
;
@ApiModelProperty
(
"变量池"
)
private
String
variable
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/enums/TypeEnums.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.NoArgsConstructor
;
/**
* ClassName: TypeEnums
* Package: com.tykj
* Description:
* Datetime: 2021/3/2 19:46
*
* @Author: zsp
*/
@AllArgsConstructor
@NoArgsConstructor
public
enum
TypeEnums
{
AGREE
(
"同意"
,
0
),
REFUSE
(
"拒绝"
,
1
),
TRANSFER
(
"转交"
,
2
);
private
String
name
;
private
int
index
;
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
int
getIndex
()
{
return
index
;
}
public
void
setIndex
(
int
index
)
{
this
.
index
=
index
;
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/listener/AssigneeListener.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
listener
;
import
org.flowable.engine.delegate.TaskListener
;
import
org.flowable.task.service.delegate.DelegateTask
;
import
org.springframework.stereotype.Component
;
/**
* ClassName: AssigneeListener
* Package: com.tykj.listener
* Description:
* Datetime: 2021/2/23 16:02
*
* @Author: zsp
*/
@Component
public
class
AssigneeListener
implements
TaskListener
{
@Override
public
void
notify
(
DelegateTask
delegateTask
)
{
//指定流程的发起人
//获取当前登录到用户
String
userId
=
""
;
delegateTask
.
setAssignee
(
userId
);
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/mapper/FlowsInfoMapper.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
mapper
;
import
com.tykj.workflowcore.workflow_editer.entity.FlowsInfo
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* ClassName: FlowsInfoMapper
* Package: com.tykj.mapper
* Datetime: 2021/2/23 14:06
* @Author: zsp
*/
public
interface
FlowsInfoMapper
extends
JpaRepository
<
FlowsInfo
,
Long
>,
JpaSpecificationExecutor
<
FlowsInfo
>
{
/**
* 根据流程主键查询
* @param flowKey 流程主键
* @return FlowsInfo
*/
FlowsInfo
findByFlowKey
(
String
flowKey
);
}
src/main/java/com/tykj/workflowcore/workflow_editer/mapper/FormPageMapper.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
mapper
;
import
com.tykj.workflowcore.workflow_editer.entity.FormPage
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* ClassName: PageEntityMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/3/3 13:12
*
* @Author: zsp
*/
public
interface
FormPageMapper
extends
JpaRepository
<
FormPage
,
Long
>
,
JpaSpecificationExecutor
<
FormPage
>
{
//增删改查
}
src/main/java/com/tykj/workflowcore/workflow_editer/mapper/NodePageMapper.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
mapper
;
import
com.tykj.workflowcore.workflow_editer.entity.NodePage
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* ClassName: NodePage
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/3/4 15:31
*
* @Author: zsp
*/
public
interface
NodePageMapper
extends
JpaRepository
<
NodePage
,
Long
>,
JpaSpecificationExecutor
<
NodePage
>
{
/**
* 通过节点id得到pageId
* @param nodeId 节点id
* @return 返回页面id
*/
Long
findByNodeId
(
String
nodeId
);
}
src/main/java/com/tykj/workflowcore/workflow_editer/mapper/PageEntityMapper.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
mapper
;
import
com.tykj.workflowcore.workflow_editer.entity.PageEntity
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* ClassName: PageEntityMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/3/4 9:53
*
* @Author: zsp
*/
public
interface
PageEntityMapper
extends
JpaRepository
<
PageEntity
,
Long
>,
JpaSpecificationExecutor
<
PageEntity
>
{
}
src/main/java/com/tykj/workflowcore/workflow_editer/mapper/RoleMapper.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
mapper
;
import
com.tykj.workflowcore.workflow_editer.entity.Role
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* ClassName: RoleMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/2/23 15:08
*
* @Author: zsp
*/
public
interface
RoleMapper
extends
JpaRepository
<
Role
,
Long
>,
JpaSpecificationExecutor
<
Role
>
{
}
src/main/java/com/tykj/workflowcore/workflow_editer/mapper/UserMapper.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
mapper
;
import
com.tykj.workflowcore.workflow_editer.entity.User
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* ClassName: UserMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/2/23 14:49
*
* @Author: zsp
*/
public
interface
UserMapper
extends
JpaRepository
<
User
,
Long
>,
JpaSpecificationExecutor
<
User
>
{
}
src/main/java/com/tykj/workflowcore/workflow_editer/mapper/VariableStorageMapper.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
mapper
;
import
com.tykj.workflowcore.workflow_editer.entity.VariableStorage
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* ClassName: VariableStorageMapper
* Package: com.tykj.mapper
* Description:
* Datetime: 2021/3/3 10:08
*
* @Author: zsp
*/
public
interface
VariableStorageMapper
extends
JpaRepository
<
VariableStorage
,
Long
>,
JpaSpecificationExecutor
<
VariableStorage
>
{
/**
* 通过流程主键获取变量池
* @param flowKey 流程主键
* @return
*/
VariableStorage
findByFlowKey
(
String
flowKey
);
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/FlowInfoService.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
;
import
com.tykj.workflowcore.workflow_editer.entity.FlowsInfo
;
import
com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo
;
import
com.tykj.workflowcore.workflow_editer.vo.PageVo
;
import
org.springframework.data.domain.Page
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.List
;
/**
* ClassName: FlowInfoService
* Package: com.tykj.service
* Description: 流程
* Datetime: 2021/2/24 10:02
*
* @Author: zsp
*/
public
interface
FlowInfoService
{
/**
* 查询所有流程
* @param pageVo 分页
* @return 返回所有的流程
*/
Page
<
FlowsInfo
>
getAllFlowsInfo
(
@RequestBody
PageVo
pageVo
);
/**
* 查看已经部署的流程
* @return
*/
List
<
FlowsInfo
>
getDeployedFlowsInfo
();
/**
* 根据id查询出一个flowsInfo对象
* @param id flowInfo Id
* @return FlowInfo对象
*/
FlowsInfo
findById
(
Long
id
);
/**
* 根据流程主键修改
* @param flowsInfoVo flowsInfo
* @return flowsInfoVo
*/
FlowsInfo
findByFlowName
(
@RequestBody
FlowsInfoVo
flowsInfoVo
);
/**
* 根据流程描述修改
* @param flowsInfoVo flowsInfo
* @return flowsInfoVo
*/
FlowsInfo
findByDesc
(
@RequestBody
FlowsInfoVo
flowsInfoVo
);
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/FormPageService.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
;
import
com.tykj.workflowcore.workflow_editer.entity.FormPage
;
import
com.tykj.workflowcore.workflow_editer.vo.FormPageVo
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.List
;
/**
* ClassName: PageEntityService
* Package: com.tykj.service
* Description:
* Datetime: 2021/3/3 13:14
*
* @Author: zsp
*/
public
interface
FormPageService
{
/**
* 保存页面
* @param formPage 页面实体
* @return 主键id
*/
Long
savePage
(
@RequestBody
FormPage
formPage
);
/**
* 根据页面id来进行回显
* @param id 页面id
* @return 页面信息
*/
FormPageVo
getPage
(
@PathVariable
(
"id"
)
Long
id
);
/**
* 根据页面id删除页面
* @param id 页面id
*/
void
deletePage
(
@PathVariable
(
"id"
)
Long
id
);
/**
* 查询全部页面
* @return 全部集合
*/
List
<
FormPageVo
>
getAllPages
();
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/NodePageService.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
;
import
com.tykj.workflowcore.workflow_editer.entity.NodePage
;
/**
* ClassName: NodePageService
* Package: com.tykj.service
* Description:
* Datetime: 2021/3/4 15:33
*
* @Author: zsp
*/
public
interface
NodePageService
{
/**
* 通过节点id得到pageId
* @param nodeId 节点id
* @return 返回页面id
*/
Long
findByNodeId
(
String
nodeId
);
/**
* 保存节点和页面的关系
* @param nodePage
*/
void
saveNodePage
(
NodePage
nodePage
);
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/PageEntityService.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
;
import
com.tykj.workflowcore.workflow_editer.entity.PageEntity
;
/**
* ClassName: PageEntityService
* Package: com.tykj.service
* Description:
* Datetime: 2021/3/4 9:52
*
* @Author: zsp
*/
public
interface
PageEntityService
{
/**
* 保存
* @param pageEntity 页面实体之间关系
*/
void
savePageEntity
(
PageEntity
pageEntity
);
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/UserService.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
;
//import org.springframework.security.core.userdetails.UserDetails;
/**
* ClassName: UserService
* Package: com.tykj.service
* Description:
* Datetime: 2021/2/25 13:53
*
* @Author: zsp
*/
//@Service
//public interface UserService {
// /**
// * 获取当前登录人的id
// * @return User对象
// */
// UserDetails getCurrentUserId();
//
// /**
// * 获取所有用户
// * @return 所有用户
// */
// List<User> getAllUser();
//}
src/main/java/com/tykj/workflowcore/workflow_editer/service/VariableStorageService.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
;
import
com.tykj.workflowcore.workflow_editer.entity.VariableStorage
;
import
org.springframework.web.bind.annotation.RequestBody
;
/**
* ClassName: VariableStorageService
* Package: com.tykj.service
* Description:
* Datetime: 2021/3/3 10:10
*
* @Author: zsp
*/
public
interface
VariableStorageService
{
/**
* 保存变量池
* @param variableStorage 变量池
*/
void
saveVariableStorageService
(
@RequestBody
VariableStorage
variableStorage
);
/**
* 查询变量池
* @param flowKey 流程主键
* @return VariableStorage 变量池
*/
VariableStorage
findByFlowKey
(
String
flowKey
);
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/WorkFlowService.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
;
import
com.tykj.workflowcore.workflow_editer.entity.FlowsInfo
;
import
com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo
;
import
com.tykj.workflowcore.workflow_editer.vo.StartFlowVo
;
import
com.tykj.workflowcore.workflow_editer.vo.TaskVo
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.FileNotFoundException
;
import
java.util.List
;
import
java.util.Map
;
/**
* ClassName: FlowableService
* Package: com.tykj.service
* Description:工作流服务接口
* Datetime: 2021/2/23 9:49
*
* @Author: zsp
*/
public
interface
WorkFlowService
{
/**
* 保存流程文件
* @param file file文件
* @return 路径名称
*/
String
saveXml
(
@RequestParam
(
"file"
)
MultipartFile
file
);
/**
* 接收前端的流程文件
* @param flowsInfoVo
*/
void
flowXml
(
@RequestBody
FlowsInfoVo
flowsInfoVo
);
/**
* 创建流程
* @param flowsInfoVo
* @return 主键id
*/
Long
createFlow
(
@RequestBody
FlowsInfoVo
flowsInfoVo
);
/**
* 部署xml流程文件
* @param flowsInfo
* @throws FileNotFoundException
*/
void
deployXml
(
FlowsInfo
flowsInfo
)
throws
FileNotFoundException
;
/**
* 存储变量池 选择变量条件
* @param map
* @return map
*/
Map
<
String
,
Object
>
setVariables
(
@RequestBody
Map
<
String
,
Object
>
map
);
/**
* 开启流程
* @param startFlowVo 流程开启vo
*/
void
startFlow
(
@RequestBody
StartFlowVo
startFlowVo
);
/**
* 根据用户id进行任务待办查询
* @param userId 用户id
* @return 任务列表
*/
List
<
Map
<
String
,
Object
>>
findTaskByUserId
(
Long
userId
);
/**
* 查看具体的任务详情
* @param userId 用户id
* @param taskId 任务Id
* @return 任务列表
*/
List
<
Map
<
String
,
Object
>>
findTaskDetail
(
Long
userId
,
String
taskId
);
/**
* 根据角色id进行任务待办查询
* @param roleId 角色id
* @return 任务列表
*/
List
<
Map
<
String
,
Object
>>
findByRoleId
(
Long
roleId
);
/**
* 任务完成
* @param taskVo taskVo
*/
void
completeTask
(
@RequestBody
TaskVo
taskVo
);
/**
* 任务的拾取 相当变成了任务的执行人 只有执行人才可以完成任务
* @param taskId 任务Id
* @param userId 用户Id
*/
void
claimTask
(
String
taskId
,
Long
userId
);
//历史查询
//建立用户和组的关系
/**
* 任务的转交
* @param taskId 任务id
* @param userId 转交人的id
*/
void
transferTask
(
String
taskId
,
Long
userId
);
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/impl/FlowInfoServiceImpl.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
.
impl
;
import
com.github.wenhao.jpa.Specifications
;
import
com.tykj.workflowcore.workflow_editer.entity.FlowsInfo
;
import
com.tykj.workflowcore.workflow_editer.mapper.FlowsInfoMapper
;
import
com.tykj.workflowcore.workflow_editer.service.FlowInfoService
;
import
com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo
;
import
com.tykj.workflowcore.workflow_editer.vo.PageVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.List
;
/**
* ClassName: FlowInfoServiceImpl
* Package: com.tykj.service
* Description:
* Datetime: 2021/2/24 10:15
*
* @Author: zsp
*/
@Service
public
class
FlowInfoServiceImpl
implements
FlowInfoService
{
@Autowired
private
FlowsInfoMapper
flowsInfoMapper
;
@Override
public
Page
<
FlowsInfo
>
getAllFlowsInfo
(
@RequestBody
PageVo
pageVo
)
{
PageRequest
pageRequest
=
PageRequest
.
of
(
pageVo
.
getPageNum
()+
1
,
pageVo
.
getPageSize
());
return
flowsInfoMapper
.
findAll
(
pageRequest
);
}
@Override
public
List
<
FlowsInfo
>
getDeployedFlowsInfo
()
{
FlowsInfo
flowsInfo
=
new
FlowsInfo
();
flowsInfo
.
setState
(
0
);
Specification
<
FlowsInfo
>
state
=
Specifications
.<
FlowsInfo
>
and
().
eq
(
"state"
,
flowsInfo
.
getState
()).
build
();
return
flowsInfoMapper
.
findAll
(
state
);
}
@Override
public
FlowsInfo
findById
(
Long
id
)
{
return
flowsInfoMapper
.
findById
(
id
).
get
();
}
@Override
public
FlowsInfo
findByFlowName
(
@RequestBody
FlowsInfoVo
flowsInfoVo
)
{
String
flowKey
=
flowsInfoVo
.
getFlowKey
();
String
flowName
=
flowsInfoVo
.
getFlowName
();
FlowsInfo
flowsInfo
=
flowsInfoMapper
.
findByFlowKey
(
flowKey
);
flowsInfo
.
setFlowName
(
flowName
);
//进行更新
FlowsInfo
newFlowsInfo
=
flowsInfoMapper
.
save
(
flowsInfo
);
return
newFlowsInfo
;
}
@Override
public
FlowsInfo
findByDesc
(
@RequestBody
FlowsInfoVo
flowsInfoVo
)
{
String
flowKey
=
flowsInfoVo
.
getFlowKey
();
String
describe
=
flowsInfoVo
.
getFlowDescribe
();
FlowsInfo
byDesc
=
flowsInfoMapper
.
findByFlowKey
(
flowKey
);
byDesc
.
setFlowDescribe
(
describe
);
// //进行更新
// FlowsInfo flowsInfo = flowsInfoMapper.save(byDesc);
return
flowsInfoMapper
.
save
(
byDesc
);
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/impl/FormPageServiceImpl.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
.
impl
;
import
com.tykj.workflowcore.workflow_editer.entity.FormPage
;
import
com.tykj.workflowcore.workflow_editer.mapper.FormPageMapper
;
import
com.tykj.workflowcore.workflow_editer.service.FormPageService
;
import
com.tykj.workflowcore.workflow_editer.vo.FormPageVo
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
springfox.documentation.swagger2.mappers.ModelMapper
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* ClassName: PageEntityServiceImpl
* Package: com.tykj.service.impl
* Description:
* Datetime: 2021/3/3 13:16
*
* @Author: zsp
*/
@Service
public
class
FormPageServiceImpl
implements
FormPageService
{
@Autowired
private
FormPageMapper
formPageMapper
;
@Override
public
Long
savePage
(
@RequestBody
FormPage
formPage
)
{
FormPage
formPage1
=
formPageMapper
.
save
(
formPage
);
Long
id
=
formPage1
.
getId
();
return
id
;
}
@Override
public
FormPageVo
getPage
(
@PathVariable
(
"id"
)
Long
id
)
{
FormPage
formPage
=
formPageMapper
.
findById
(
id
).
get
();
FormPageVo
formPageVo
=
new
FormPageVo
();
BeanUtils
.
copyProperties
(
formPage
,
formPageVo
);
return
formPageVo
;
}
@Override
public
void
deletePage
(
@PathVariable
(
"id"
)
Long
id
)
{
formPageMapper
.
deleteById
(
id
);
}
@Override
public
List
<
FormPageVo
>
getAllPages
()
{
ArrayList
<
FormPageVo
>
formPageVos
=
new
ArrayList
<>();
List
<
FormPage
>
formPages
=
formPageMapper
.
findAll
();
for
(
FormPage
formPage
:
formPages
)
{
FormPageVo
formPageVo
=
new
FormPageVo
();
BeanUtils
.
copyProperties
(
formPage
,
formPageVo
);
formPageVos
.
add
(
formPageVo
);
}
return
formPageVos
;
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/impl/NodePageServiceImpl.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
.
impl
;
import
com.tykj.workflowcore.workflow_editer.entity.NodePage
;
import
com.tykj.workflowcore.workflow_editer.mapper.NodePageMapper
;
import
com.tykj.workflowcore.workflow_editer.service.NodePageService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* ClassName: NodePageServiceImpl
* Package: com.tykj.service.impl
* Description:
* Datetime: 2021/3/4 15:34
*
* @Author: zsp
*/
@Service
public
class
NodePageServiceImpl
implements
NodePageService
{
@Autowired
private
NodePageMapper
nodePageMapper
;
@Override
public
Long
findByNodeId
(
String
nodeId
)
{
return
nodePageMapper
.
findByNodeId
(
nodeId
);
}
@Override
public
void
saveNodePage
(
NodePage
nodePage
)
{
nodePageMapper
.
save
(
nodePage
);
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/impl/PageEntityServiceImpl.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
.
impl
;
import
com.tykj.workflowcore.workflow_editer.entity.PageEntity
;
import
com.tykj.workflowcore.workflow_editer.mapper.PageEntityMapper
;
import
com.tykj.workflowcore.workflow_editer.service.PageEntityService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* ClassName: PageEntityServiceImpl
* Package: com.tykj.service.impl
* Description:
* Datetime: 2021/3/4 9:55
*
* @Author: zsp
*/
@Service
public
class
PageEntityServiceImpl
implements
PageEntityService
{
@Autowired
private
PageEntityMapper
pageEntityMapper
;
@Override
public
void
savePageEntity
(
PageEntity
pageEntity
)
{
pageEntityMapper
.
save
(
pageEntity
);
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/impl/VariableStorageServiceImpl.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
.
impl
;
import
com.tykj.workflowcore.workflow_editer.entity.VariableStorage
;
import
com.tykj.workflowcore.workflow_editer.mapper.VariableStorageMapper
;
import
com.tykj.workflowcore.workflow_editer.service.VariableStorageService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.bind.annotation.RequestBody
;
/**
* ClassName: VariableStorageServiceImpl
* Package: com.tykj.service.impl
* Description:
* Datetime: 2021/3/3 10:13
*
* @Author: zsp
*/
@Service
public
class
VariableStorageServiceImpl
implements
VariableStorageService
{
@Autowired
private
VariableStorageMapper
variableStorageMapper
;
@Override
public
void
saveVariableStorageService
(
@RequestBody
VariableStorage
variableStorage
)
{
variableStorageMapper
.
save
(
variableStorage
);
}
@Override
public
VariableStorage
findByFlowKey
(
String
flowKey
)
{
VariableStorage
variableStorage
=
variableStorageMapper
.
findByFlowKey
(
flowKey
);
return
variableStorage
;
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/service/impl/WorkFlowServiceImpl.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
service
.
impl
;
import
com.tykj.workflowcore.workflow_editer.entity.FlowsInfo
;
import
com.tykj.workflowcore.workflow_editer.entity.NodePage
;
import
com.tykj.workflowcore.workflow_editer.entity.Role
;
import
com.tykj.workflowcore.workflow_editer.entity.User
;
import
com.tykj.workflowcore.workflow_editer.mapper.FlowsInfoMapper
;
import
com.tykj.workflowcore.workflow_editer.mapper.RoleMapper
;
import
com.tykj.workflowcore.workflow_editer.mapper.UserMapper
;
import
com.tykj.workflowcore.workflow_editer.service.NodePageService
;
import
com.tykj.workflowcore.workflow_editer.service.WorkFlowService
;
import
com.tykj.workflowcore.workflow_editer.vo.FlowsInfoVo
;
import
com.tykj.workflowcore.workflow_editer.vo.StartFlowVo
;
import
com.tykj.workflowcore.workflow_editer.vo.TaskVo
;
import
org.dom4j.Attribute
;
import
org.dom4j.Document
;
import
org.dom4j.DocumentException
;
import
org.dom4j.Element
;
import
org.dom4j.io.SAXReader
;
import
org.flowable.engine.RepositoryService
;
import
org.flowable.engine.RuntimeService
;
import
org.flowable.engine.TaskService
;
import
org.flowable.engine.repository.Deployment
;
import
org.flowable.engine.runtime.ProcessInstance
;
import
org.flowable.task.api.Task
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.*
;
import
java.util.*
;
/**
* ClassName: FlowableServiceImpl
* Package: com.tykj.service
* Description:
* Datetime: 2021/2/23 13:46
*
* @Author: zsp
*/
@Service
public
class
WorkFlowServiceImpl
implements
WorkFlowService
{
@Autowired
private
RepositoryService
repositoryService
;
@Autowired
private
RuntimeService
runtimeService
;
@Autowired
private
TaskService
taskService
;
@Autowired
private
FlowsInfoMapper
flowsInfoMapper
;
@Autowired
private
UserMapper
userMapper
;
@Autowired
private
RoleMapper
roleMapper
;
@Autowired
private
NodePageService
nodePageService
;
@Value
(
"${file.path}"
)
String
path
;
@Override
public
String
saveXml
(
@RequestParam
(
"file"
)
MultipartFile
file
)
{
String
realPath
=
null
;
if
(!
file
.
isEmpty
())
{
//获取文件名
String
fileName
=
file
.
getOriginalFilename
();
System
.
out
.
println
(
fileName
);
//获取文件后缀
String
suffixName
=
Objects
.
requireNonNull
(
fileName
).
substring
(
fileName
.
lastIndexOf
(
"."
));
//重新生成文件名
fileName
=
UUID
.
randomUUID
()
+
suffixName
;
System
.
out
.
println
(
fileName
);
//指定本地存入路径
File
fileNew
=
new
File
(
path
+
fileName
);
realPath
=
path
+
fileName
;
try
{
file
.
transferTo
(
fileNew
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
//解析xml
//1.创建Reader对象
SAXReader
reader
=
new
SAXReader
();
//2.加载xml
Document
document
=
null
;
try
{
document
=
reader
.
read
(
fileNew
);
}
catch
(
DocumentException
e
)
{
e
.
printStackTrace
();
}
//3.获取根节点
Element
rootElement
=
document
.
getRootElement
();
Iterator
iterator
=
rootElement
.
elementIterator
();
String
processId
=
null
;
String
processName
=
null
;
Element
stu
=
(
Element
)
iterator
.
next
();
List
<
Attribute
>
attributes
=
stu
.
attributes
();
System
.
out
.
println
(
"======获取属性值======"
);
for
(
Attribute
attribute
:
attributes
)
{
if
(
"id"
.
equals
(
attribute
.
getName
())){
processId
=
attribute
.
getValue
();
System
.
out
.
println
(
"processId的值是:"
+
processId
);
}
if
(
"name"
.
equals
(
attribute
.
getName
())){
processName
=
attribute
.
getValue
();
System
.
out
.
println
(
"processName的值是:"
+
processName
);
}
}
//保存processId和processName 到数据库里面
FlowsInfo
flowsInfo
=
new
FlowsInfo
();
flowsInfo
.
setFlowKey
(
processId
);
flowsInfo
.
setFlowName
(
processName
);
flowsInfo
.
setResourceName
(
file
.
getOriginalFilename
());
flowsInfo
.
setCreateTime
(
new
Date
());
//状态为未部署
flowsInfo
.
setState
(
1
);
flowsInfo
.
setFilePath
(
realPath
);
flowsInfoMapper
.
save
(
flowsInfo
);
}
return
realPath
;
}
@Override
public
void
flowXml
(
@RequestBody
FlowsInfoVo
flowsInfoVo
)
{
Long
id
=
flowsInfoVo
.
getId
();
String
flowKey
=
flowsInfoVo
.
getFlowKey
();
String
fileXml
=
flowsInfoVo
.
getFileXml
();
// String flowName = flowsInfoVo.getFlowName();
// String flowDescribe = flowsInfoVo.getFlowDescribe();
List
<
NodePage
>
nodePages
=
flowsInfoVo
.
getNodePages
();
for
(
NodePage
nodePage
:
nodePages
)
{
nodePageService
.
saveNodePage
(
nodePage
);
}
//生成xml文件
File
f
=
null
;
try
{
f
=
new
File
(
path
+
"/xml/"
+
flowKey
+
"bpmn20.xml"
);
// 判断文件是否存在
if
(!
f
.
exists
()){
f
.
createNewFile
();
}
System
.
out
.
println
(
"生成"
+
flowKey
+
".xml成功"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
System
.
out
.
println
(
"生成"
+
flowKey
+
".xml失败"
);
}
BufferedReader
bufferedReader
=
null
;
BufferedWriter
bufferedWriter
=
null
;
try
{
bufferedReader
=
new
BufferedReader
(
new
StringReader
(
fileXml
));
bufferedWriter
=
new
BufferedWriter
(
new
FileWriter
(
f
));
//字符缓冲区
char
buf
[]
=
new
char
[
1024
];
int
len
;
while
((
len
=
bufferedReader
.
read
(
buf
))
!=
-
1
)
{
bufferedWriter
.
write
(
buf
,
0
,
len
);
}
bufferedWriter
.
flush
();
bufferedReader
.
close
();
bufferedWriter
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
bufferedReader
!=
null
)
{
try
{
bufferedReader
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
FlowsInfo
flowsInfo
=
new
FlowsInfo
();
BeanUtils
.
copyProperties
(
flowsInfoVo
,
flowsInfo
);
flowsInfo
.
setResourceName
(
flowKey
+
"bpmn20.xml"
);
flowsInfo
.
setCreateTime
(
new
Date
());
//状态为未部署
flowsInfo
.
setState
(
1
);
flowsInfo
.
setFilePath
(
path
+
"/xml/"
+
flowKey
+
"bpmn20.xml"
);
flowsInfo
.
setId
(
id
);
//更新并保存
flowsInfoMapper
.
save
(
flowsInfo
);
}
@Override
public
Long
createFlow
(
FlowsInfoVo
flowsInfoVo
)
{
FlowsInfo
flowsInfo
=
new
FlowsInfo
();
flowsInfo
.
setFlowKey
(
flowsInfoVo
.
getFlowKey
());
flowsInfo
.
setFlowName
(
flowsInfoVo
.
getFlowName
());
flowsInfo
.
setFlowDescribe
(
flowsInfoVo
.
getFlowDescribe
());
FlowsInfo
flowsInfo1
=
flowsInfoMapper
.
save
(
flowsInfo
);
return
flowsInfo1
.
getId
();
}
@Override
public
void
deployXml
(
FlowsInfo
flowsInfo
)
throws
FileNotFoundException
{
Deployment
deploy
=
null
;
try
{
deploy
=
repositoryService
.
createDeployment
().
addInputStream
(
flowsInfo
.
getResourceName
(),
new
FileInputStream
(
flowsInfo
.
getFilePath
())).
deploy
();
}
catch
(
FileNotFoundException
e
)
{
e
.
printStackTrace
();
}
//修改状态
flowsInfo
.
setState
(
0
);
flowsInfoMapper
.
save
(
flowsInfo
);
}
@Override
public
void
startFlow
(
@RequestBody
StartFlowVo
startFlowVo
)
{
//获取流程主键
String
flowKey
=
startFlowVo
.
getFlowKey
();
//获取变量池
Map
<
String
,
Object
>
map
=
startFlowVo
.
getMap
();
ProcessInstance
processInstance
=
runtimeService
.
startProcessInstanceByKey
(
flowKey
,
map
);
Task
task
=
taskService
.
createTaskQuery
().
processInstanceId
(
processInstance
.
getProcessInstanceId
()).
singleResult
();
//获取当前人登录的id
// UserDetails userDetails = userService.getCurrentUserId();
// String username = userDetails.getUsername();
//通过用户名得到用户id
Long
userId
=
123L
;
taskService
.
setAssignee
(
task
.
getId
(),
Long
.
toString
(
userId
));
//调用业务服务接口 插入数据到记录表中 例如请假是插入请假表
taskService
.
complete
(
task
.
getId
());
}
@Override
public
List
<
Map
<
String
,
Object
>>
findTaskByUserId
(
Long
userId
)
{
// 查询个人待办,指定个人任务 流程变量就是${userId == 具体的数字}
List
<
Task
>
taskList
=
taskService
.
createTaskQuery
().
taskAssignee
(
Long
.
toString
(
userId
)).
orderByTaskCreateTime
().
desc
().
list
();
ArrayList
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
//通过userId查询出userName
if
(
userMapper
.
findById
(
userId
).
isPresent
()){
User
user
=
userMapper
.
findById
(
userId
).
get
();
for
(
Task
task
:
taskList
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"taskId"
,
task
.
getId
());
map
.
put
(
"taskName"
,
task
.
getName
());
map
.
put
(
"taskAssigne"
,
user
.
getUserName
());
map
.
put
(
"time"
,
task
.
getCreateTime
());
map
.
put
(
"description"
,
task
.
getDescription
());
map
.
put
(
"processInstanceId"
,
task
.
getProcessInstanceId
());
list
.
add
(
map
);
}
}
return
list
;
}
@Override
public
List
<
Map
<
String
,
Object
>>
findTaskDetail
(
Long
userId
,
String
taskId
)
{
List
<
Map
<
String
,
Object
>>
mapList
=
findTaskByUserId
(
userId
);
Map
<
String
,
Object
>
variables
=
taskService
.
getVariables
(
taskId
);
mapList
.
add
(
variables
);
return
mapList
;
}
@Override
public
List
<
Map
<
String
,
Object
>>
findByRoleId
(
Long
roleId
)
{
//流程变量 ${roleId == 具体的数值}
// 先获取当前登录人的id
//通过userId来获取roleId
//根据roleId来查询userName
Role
role
=
roleMapper
.
findById
(
roleId
).
get
();
List
<
User
>
userList
=
role
.
getUserList
();
List
<
Task
>
taskList
=
taskService
.
createTaskQuery
().
taskCandidateUser
(
Long
.
toString
(
roleId
)).
list
();
ArrayList
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
User
user
:
userList
)
{
for
(
Task
task
:
taskList
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"taskId"
,
task
.
getId
());
map
.
put
(
"taskName"
,
task
.
getName
());
map
.
put
(
"taskAssigne"
,
user
.
getUserName
());
map
.
put
(
"time"
,
task
.
getCreateTime
());
map
.
put
(
"description"
,
task
.
getDescription
());
map
.
put
(
"processInstanceId"
,
task
.
getProcessInstanceId
());
list
.
add
(
map
);
}
}
return
list
;
}
@Override
public
void
completeTask
(
@RequestBody
TaskVo
taskVo
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
setVariables
(
taskVo
.
getMap
());
Task
task
=
taskService
.
createTaskQuery
().
taskId
(
taskVo
.
getTaskId
()).
singleResult
();
String
processInstanceId
=
task
.
getProcessInstanceId
();
taskService
.
addComment
(
task
.
getId
(),
processInstanceId
,
taskVo
.
getComments
());
//先判断是不是表达式
if
(
taskVo
.
getConditionalExpression
()!=
null
){
taskService
.
complete
(
task
.
getId
());
}
else
{
map
.
put
(
"handlingOpinion"
,
taskVo
.
getHandlingOpinion
());
taskService
.
complete
(
task
.
getId
(),
map
);
}
}
@Override
public
void
claimTask
(
String
taskId
,
Long
userId
)
{
//当前登录人的Id
taskService
.
claim
(
taskId
,
Long
.
toString
(
userId
));
}
@Override
public
void
transferTask
(
String
taskId
,
Long
userId
)
{
taskService
.
setAssignee
(
taskId
,
Long
.
toString
(
userId
));
}
@Override
public
Map
<
String
,
Object
>
setVariables
(
@RequestBody
Map
<
String
,
Object
>
maxMap
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
putAll
(
maxMap
);
return
map
;
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/util/PageUtil.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
util
;
import
java.util.List
;
/**
* ClassName: PageUtil
* Package: com.tykj.util
* Description:
* Datetime: 2021/3/2 20:39
*
* @Author: zsp
*/
public
class
PageUtil
{
/**
* 开始分页
* @param list
* @param pageNum 页码
* @param pageSize 每页多少条数据
* @return
*/
public
static
List
startPage
(
List
list
,
Integer
pageNum
,
Integer
pageSize
)
{
if
(
list
==
null
)
{
return
null
;
}
if
(
list
.
size
()
==
0
)
{
return
null
;
}
Integer
count
=
list
.
size
();
// 记录总数
Integer
pageCount
=
0
;
// 页数
if
(
count
%
pageSize
==
0
)
{
pageCount
=
count
/
pageSize
;
}
else
{
pageCount
=
count
/
pageSize
+
1
;
}
int
fromIndex
=
0
;
// 开始索引
int
toIndex
=
0
;
// 结束索引
if
(
pageNum
>
pageCount
){
return
null
;
}
if
(
pageNum
!=
pageCount
)
{
System
.
out
.
println
(
"pageNum====>"
+
pageNum
);
fromIndex
=
(
pageNum
-
1
)
*
pageSize
;
System
.
out
.
println
(
"fromindex===>"
+
fromIndex
);
toIndex
=
fromIndex
+
pageSize
;
}
else
{
System
.
out
.
println
(
"from====>"
+
fromIndex
);
fromIndex
=
(
pageNum
-
1
)
*
pageSize
;
toIndex
=
count
;
}
List
pageList
=
list
.
subList
(
fromIndex
,
toIndex
);
return
pageList
;
}
}
src/main/java/com/tykj/workflowcore/workflow_editer/vo/DeployedVo.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* ClassName: DeployedVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/4 14:18
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
DeployedVo
{
private
FlowsInfoVo
flowsInfoVo
;
@ApiModelProperty
(
"节点的第一个绑定的页面id"
)
private
Long
pageId
;
@ApiModelProperty
(
"流程主键"
)
private
String
flowKey
;
@ApiModelProperty
(
"流程名称"
)
private
String
flowName
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/vo/FlowsInfoVo.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
vo
;
import
com.tykj.workflowcore.workflow_editer.entity.NodePage
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
import
java.util.List
;
/**
* ClassName: FlowInfoVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/1 9:54
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
FlowsInfoVo
{
@ApiModelProperty
(
"主键id"
)
private
Long
id
;
@ApiModelProperty
(
"发起人的名字"
)
private
Long
userName
;
@ApiModelProperty
(
"流程名称"
)
private
String
flowName
;
@ApiModelProperty
(
"流程主键"
)
private
String
flowKey
;
@ApiModelProperty
(
value
=
"部署状态"
,
notes
=
"0 已部署,1 未部署"
)
private
Integer
state
;
@ApiModelProperty
(
"流程创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
"流程修改时间"
)
private
Date
updateTime
;
@ApiModelProperty
(
"流程描述"
)
private
String
flowDescribe
;
@ApiModelProperty
private
String
fileXml
;
@ApiModelProperty
(
"开始节点的id"
)
private
String
startId
;
@ApiModelProperty
()
private
List
<
NodePage
>
nodePages
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/vo/FormPageVo.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Lob
;
/**
* ClassName: FormPageVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/3 13:32
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
FormPageVo
{
@ApiModelProperty
(
"页面名称"
)
private
String
pageName
;
@ApiModelProperty
(
"创建的时间"
)
private
String
createTime
;
@ApiModelProperty
(
"模板"
)
@Lob
private
String
template
;
@ApiModelProperty
(
"页面js"
)
@Lob
private
String
js
;
@ApiModelProperty
(
"页面css"
)
@Lob
private
String
css
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/vo/PageVo.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* ClassName: PageVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/2 20:42
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
PageVo
{
@ApiModelProperty
(
"用户id"
)
private
Long
userId
;
@ApiModelProperty
(
"list集合"
)
private
List
list
;
@ApiModelProperty
(
"当前页码"
)
private
int
pageNum
;
@ApiModelProperty
(
"当前页的大小"
)
private
int
pageSize
=
5
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/vo/StartFlowVo.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
vo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Map
;
/**
* ClassName: StartFlowVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/3 9:30
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Api
(
"开启流程"
)
public
class
StartFlowVo
{
@ApiModelProperty
(
"流程主键"
)
private
String
flowKey
;
@ApiModelProperty
(
"变量池"
)
private
Map
<
String
,
Object
>
map
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/vo/TaskVo.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
vo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Map
;
/**
* ClassName: TaskVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/2 16:14
*
* @Author: zsp
*/
@Api
(
"任务待办"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
TaskVo
{
@ApiModelProperty
(
"任务id"
)
private
String
taskId
;
@ApiModelProperty
(
"添加评论"
)
private
String
comments
;
@ApiModelProperty
(
"用户id"
)
private
Long
userId
;
@ApiModelProperty
(
value
=
"是否同意"
,
notes
=
"0 同意, 1拒绝 "
)
private
Integer
handlingOpinion
;
@ApiModelProperty
(
"转交人的id"
)
private
Long
toUserId
;
Map
<
String
,
Object
>
map
;
@ApiModelProperty
(
"条件表达式"
)
private
String
conditionalExpression
;
}
src/main/java/com/tykj/workflowcore/workflow_editer/vo/WorkFlowVo.java
0 → 100644
浏览文件 @
e08a6057
package
com
.
tykj
.
workflowcore
.
workflow_editer
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Map
;
/**
* ClassName: WorkFlowVo
* Package: com.tykj.vo
* Description:
* Datetime: 2021/3/2 10:35
*
* @Author: zsp
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
WorkFlowVo
{
@ApiModelProperty
(
"流程定义主键"
)
private
String
processDefinitionKey
;
@ApiModelProperty
(
"变量池"
)
private
Map
<
String
,
Map
<
String
,
Object
>>
maxMap
;
}
src/main/resources/application.properties
浏览文件 @
e08a6057
# port
server.port
=
9002
server.maxPostSize
=
-1
server.maxHttpHeaderSize
=
102400
spring.servlet.multipart.max-file-size
=
400MB
spring.servlet.multipart.max-request-size
=
400MB
spring.jpa.hibernate.ddl-auto
=
update
spring.jpa.show-sql
=
false
spring.jpa.open-in-view
=
true
spring.main.allow-bean-definition-overriding
=
true
server.servlet.session.timeout
=
PT1H
spring.jackson.date-format
=
yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone
=
GMT+8
spring.datasource.url
=
jdbc:mysql://localhost:3306/ty_flowable?characterEncoding=utf8&serverTimezone=GMT%2b8&nullCatalogMeansCurrent=true
spring.datasource.driver-class-name
=
com.mysql.cj.jdbc.Driver
spring.datasource.username
=
root
spring.datasource.password
=
123456
file.path
=
D:/ty_flowable_xml/
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论