Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Skyeye云
Skyeye
提交
1d09d3ac
S
Skyeye
项目概览
Skyeye云
/
Skyeye
通知
1283
Star
158
Fork
129
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Skyeye
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
1d09d3ac
编写于
12月 13, 2021
作者:
Skyeye云
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
会签相关代码
上级
4974c1e7
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
351 addition
and
6 deletion
+351
-6
skyeye-activiti/src/main/java/com/skyeye/activiti/controller/CounterSignController.java
...com/skyeye/activiti/controller/CounterSignController.java
+42
-0
skyeye-activiti/src/main/java/com/skyeye/activiti/service/CounterSignService.java
.../java/com/skyeye/activiti/service/CounterSignService.java
+89
-0
skyeye-activiti/src/main/java/com/skyeye/activiti/service/impl/CounterSignServiceImpl.java
.../skyeye/activiti/service/impl/CounterSignServiceImpl.java
+214
-0
skyeye-common/src/main/java/com/skyeye/common/constans/ActivitiConstants.java
...in/java/com/skyeye/common/constans/ActivitiConstants.java
+6
-0
skyeye-common/src/main/java/com/skyeye/eve/service/impl/SysEnclosureServiceImpl.java
.../com/skyeye/eve/service/impl/SysEnclosureServiceImpl.java
+0
-3
skyeye-knowlg/src/main/java/com/skyeye/eve/service/impl/KnowledgeContentServiceImpl.java
.../skyeye/eve/service/impl/KnowledgeContentServiceImpl.java
+0
-3
未找到文件。
skyeye-activiti/src/main/java/com/skyeye/activiti/controller/CounterSignController.java
0 → 100644
浏览文件 @
1d09d3ac
/*******************************************************************************
* Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package
com.skyeye.activiti.controller
;
import
com.skyeye.activiti.service.CounterSignService
;
import
com.skyeye.common.object.InputObject
;
import
com.skyeye.common.object.OutputObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* @ClassName: CounterSignController
* @Description: 会签相关
* @author: skyeye云系列--卫志强
* @date: 2021/12/13 20:45
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的
*/
@Controller
public
class
CounterSignController
{
@Autowired
private
CounterSignService
counterSignService
;
/**
* 将 普通节点转换成为会签 任务
*
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping
(
"/post/CounterSignController/covertToMultiInstance"
)
@ResponseBody
public
void
covertToMultiInstance
(
InputObject
inputObject
,
OutputObject
outputObject
)
throws
Exception
{
counterSignService
.
covertToMultiInstance
(
inputObject
,
outputObject
);
}
}
skyeye-activiti/src/main/java/com/skyeye/activiti/service/CounterSignService.java
0 → 100644
浏览文件 @
1d09d3ac
/*******************************************************************************
* Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package
com.skyeye.activiti.service
;
import
com.skyeye.common.object.InputObject
;
import
com.skyeye.common.object.OutputObject
;
import
org.activiti.bpmn.model.MultiInstanceLoopCharacteristics
;
import
org.activiti.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior
;
import
java.util.Map
;
/**
* @ClassName: CounterSignService
* @Description: 会签相关服务接口层
* @author: skyeye云系列--卫志强
* @date: 2021/12/13 20:45
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的
*/
public
interface
CounterSignService
{
/**
* 将 普通节点转换成为会签 任务
*
* @param inputObject
* @param outputObject
* @throws Exception
*/
void
covertToMultiInstance
(
InputObject
inputObject
,
OutputObject
outputObject
)
throws
Exception
;
/**
* 创建多实例 循环解释器
*
* @param isSequential 是否串行
* @param assigneeListExp 用户组表达
* @param assignee 用户标识
* @return
*/
MultiInstanceLoopCharacteristics
createMultiInstanceLoopCharacteristics
(
boolean
isSequential
,
String
assigneeListExp
,
String
assignee
);
/**
* 创建多实例 循环解释器
*
* @param isSequential 是否 串行
* @return
*/
MultiInstanceLoopCharacteristics
createMultiInstanceLoopCharacteristics
(
boolean
isSequential
);
/**
* 创建 多实例 行为解释器
*
* @param processInstanceId
* @param sequential
* @return
*/
MultiInstanceActivityBehavior
createMultiInstanceBehavior
(
String
processInstanceId
,
boolean
sequential
);
/**
* 创建多实例行为解释器
*
* @param processInstanceId 流程id
* @param sequential 是否串行
* @param assigneeListExp 用户组表达
* @param assigneeExp 用户标识
* @return
*/
MultiInstanceActivityBehavior
createMultiInstanceBehavior
(
String
processInstanceId
,
boolean
sequential
,
String
assigneeListExp
,
String
assigneeExp
);
/**
* 将 普通节点转换成为会签 任务
*
* @param taskId
* @param sequential
* @param data
*/
void
covertToMultiInstance
(
String
taskId
,
boolean
sequential
,
Map
<
String
,
Object
>
data
);
/**
* 将 普通节点转换成为会签 任务
* @param taskId
* @param sequential
* @param assigneeExp 任务执行人表达式
* @param data
*/
void
covertToMultiInstance
(
String
taskId
,
boolean
sequential
,
String
assigneeExp
,
Map
<
String
,
Object
>
data
);
}
skyeye-activiti/src/main/java/com/skyeye/activiti/service/impl/CounterSignServiceImpl.java
0 → 100644
浏览文件 @
1d09d3ac
/*******************************************************************************
* Copyright 卫志强 QQ:598748873@qq.com Inc. All rights reserved. 开源地址:https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package
com.skyeye.activiti.service.impl
;
import
com.skyeye.activiti.service.CounterSignService
;
import
com.skyeye.common.constans.ActivitiConstants
;
import
com.skyeye.common.object.InputObject
;
import
com.skyeye.common.object.OutputObject
;
import
org.activiti.bpmn.model.BpmnModel
;
import
org.activiti.bpmn.model.MultiInstanceLoopCharacteristics
;
import
org.activiti.bpmn.model.UserTask
;
import
org.activiti.engine.ProcessEngine
;
import
org.activiti.engine.RepositoryService
;
import
org.activiti.engine.RuntimeService
;
import
org.activiti.engine.TaskService
;
import
org.activiti.engine.impl.RepositoryServiceImpl
;
import
org.activiti.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior
;
import
org.activiti.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior
;
import
org.activiti.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior
;
import
org.activiti.engine.impl.bpmn.behavior.UserTaskActivityBehavior
;
import
org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl
;
import
org.activiti.engine.impl.el.ExpressionManager
;
import
org.activiti.engine.impl.persistence.entity.ExecutionEntity
;
import
org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity
;
import
org.activiti.engine.impl.pvm.process.ActivityImpl
;
import
org.activiti.engine.task.Task
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
/**
* @ClassName: CounterSignServiceImpl
* @Description: 会签相关服务类
* @author: skyeye云系列--卫志强
* @date: 2021/12/13 20:45
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 注意:本内容仅限购买后使用.禁止私自外泄以及用于其他的商业目的
*/
@Service
public
class
CounterSignServiceImpl
implements
CounterSignService
{
@Autowired
protected
ProcessEngine
processEngine
;
@Autowired
protected
TaskService
taskService
;
@Autowired
protected
RepositoryService
repositoryService
;
@Autowired
private
RuntimeService
runtimeService
;
/**
* 将 普通节点转换成为会签 任务
*
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public
void
covertToMultiInstance
(
InputObject
inputObject
,
OutputObject
outputObject
)
throws
Exception
{
Map
<
String
,
Object
>
params
=
inputObject
.
getParams
();
}
/**
* 创建多实例 循环解释器
*
* @param isSequential 是否串行
* @param assigneeListExp 用户组表达
* @param assignee 用户标识
* @return
*/
@Override
public
MultiInstanceLoopCharacteristics
createMultiInstanceLoopCharacteristics
(
boolean
isSequential
,
String
assigneeListExp
,
String
assignee
)
{
MultiInstanceLoopCharacteristics
multiInstanceLoopCharacteristics
=
new
MultiInstanceLoopCharacteristics
();
multiInstanceLoopCharacteristics
.
setSequential
(
isSequential
);
multiInstanceLoopCharacteristics
.
setInputDataItem
(
assigneeListExp
);
multiInstanceLoopCharacteristics
.
setElementVariable
(
assignee
);
return
multiInstanceLoopCharacteristics
;
}
/**
* 创建多实例 循环解释器
*
* @param isSequential 是否 串行
* @return
*/
@Override
public
MultiInstanceLoopCharacteristics
createMultiInstanceLoopCharacteristics
(
boolean
isSequential
)
{
return
this
.
createMultiInstanceLoopCharacteristics
(
isSequential
,
ActivitiConstants
.
DEFAULT_ASSIGNEE_LIST_EXP
,
ActivitiConstants
.
ASSIGNEE_USER
);
}
/**
* 创建 多实例 行为解释器
*
* @param processInstanceId 流程id
* @param sequential
* @return
*/
@Override
public
MultiInstanceActivityBehavior
createMultiInstanceBehavior
(
String
processInstanceId
,
boolean
sequential
)
{
return
createMultiInstanceBehavior
(
processInstanceId
,
sequential
,
ActivitiConstants
.
DEFAULT_ASSIGNEE_LIST_EXP
,
ActivitiConstants
.
ASSIGNEE_USER
);
}
/**
* 创建多实例行为解释器
*
* @param processInstanceId 流程id
* @param sequential 是否串行
* @param assigneeListExp 用户组表达
* @param assigneeExp 用户标识
* @return
*/
@Override
public
MultiInstanceActivityBehavior
createMultiInstanceBehavior
(
String
processInstanceId
,
boolean
sequential
,
String
assigneeListExp
,
String
assigneeExp
)
{
ActivityImpl
activityNode
=
this
.
getCurrentActivityNode
(
processInstanceId
);
if
(
activityNode
==
null
){
return
null
;
}
UserTask
currentNode
=
this
.
getCurrentUserTask
(
processInstanceId
);
ProcessEngineConfigurationImpl
processEngineConfiguration
=
(
ProcessEngineConfigurationImpl
)
processEngine
.
getProcessEngineConfiguration
();
/**
* 创建解释器
*/
UserTaskActivityBehavior
userTaskActivityBehavior
=
processEngineConfiguration
.
getActivityBehaviorFactory
()
.
createUserTaskActivityBehavior
(
currentNode
,
((
UserTaskActivityBehavior
)
activityNode
.
getActivityBehavior
()).
getTaskDefinition
());
MultiInstanceActivityBehavior
behavior
=
null
;
if
(
sequential
)
{
behavior
=
new
SequentialMultiInstanceBehavior
(
activityNode
,
userTaskActivityBehavior
);
}
else
{
behavior
=
new
ParallelMultiInstanceBehavior
(
activityNode
,
userTaskActivityBehavior
);
}
/**
* 注入表达式 解释器
*/
ExpressionManager
expressionManager
=
processEngineConfiguration
.
getExpressionManager
();
/**
* 设置表达式变量
*/
behavior
.
setCollectionExpression
(
expressionManager
.
createExpression
(
assigneeListExp
));
behavior
.
setCollectionElementVariable
(
assigneeExp
);
return
behavior
;
}
private
UserTask
getCurrentUserTask
(
String
processInstanceId
)
{
Task
cueerntTask
=
taskService
.
createTaskQuery
().
processInstanceId
(
processInstanceId
).
singleResult
();
BpmnModel
bpmnModel
=
repositoryService
.
getBpmnModel
(
cueerntTask
.
getProcessDefinitionId
());
org
.
activiti
.
bpmn
.
model
.
Process
process
=
bpmnModel
.
getProcesses
().
get
(
0
);
// 当前节点
UserTask
currentNode
=
(
UserTask
)
process
.
getFlowElement
(
cueerntTask
.
getTaskDefinitionKey
());
return
currentNode
;
}
/**
* 获取当前的activityImpl节点
*
* @param processInstanceId processInstanceId
* @return
*/
private
ActivityImpl
getCurrentActivityNode
(
String
processInstanceId
){
// 获取流程发布Id信息
String
definitionId
=
runtimeService
.
createProcessInstanceQuery
().
processInstanceId
(
processInstanceId
).
singleResult
().
getProcessDefinitionId
();
ProcessDefinitionEntity
processDefinitionEntity
=
(
ProcessDefinitionEntity
)
((
RepositoryServiceImpl
)
repositoryService
).
getDeployedProcessDefinition
(
definitionId
);
ExecutionEntity
execution
=
(
ExecutionEntity
)
runtimeService
.
createProcessInstanceQuery
().
processInstanceId
(
processInstanceId
).
singleResult
();
// 当前流程节点Id信息
String
activitiId
=
execution
.
getActivityId
();
// 获取流程所有节点信息
List
<
ActivityImpl
>
activitiList
=
processDefinitionEntity
.
getActivities
();
// 遍历所有节点信息
for
(
ActivityImpl
activityImpl
:
activitiList
)
{
String
id
=
activityImpl
.
getId
();
if
(
activitiId
.
equals
(
id
))
{
return
activityImpl
;
}
}
return
null
;
}
/**
* 将 普通节点转换成为会签 任务
*
* @param taskId
* @param sequential
* @param data
*/
@Override
public
void
covertToMultiInstance
(
String
taskId
,
boolean
sequential
,
Map
<
String
,
Object
>
data
)
{
}
/**
* 将 普通节点转换成为会签 任务
*
* @param taskId
* @param sequential
* @param assigneeExp 任务执行人表达式
* @param data
*/
@Override
public
void
covertToMultiInstance
(
String
taskId
,
boolean
sequential
,
String
assigneeExp
,
Map
<
String
,
Object
>
data
)
{
}
}
skyeye-common/src/main/java/com/skyeye/common/constans/ActivitiConstants.java
浏览文件 @
1d09d3ac
...
...
@@ -25,6 +25,12 @@ public class ActivitiConstants {
public
static
final
String
APPROVAL_NO_PASS
=
"nopass"
;
public
static
final
String
ASSIGNEE_USER
=
"assignee"
;
public
static
final
String
DEFAULT_ASSIGNEE_LIST_EXP
=
"${assigneeList}"
;
public
static
final
String
ASSIGNEE_USER_EXP
=
"${"
+
ASSIGNEE_USER
+
"}"
;
/**
* form表单数据存储在task的varables的key
*/
...
...
skyeye-common/src/main/java/com/skyeye/eve/service/impl/SysEnclosureServiceImpl.java
浏览文件 @
1d09d3ac
...
...
@@ -205,7 +205,6 @@ public class SysEnclosureServiceImpl implements SysEnclosureService{
* @return void 返回类型
* @throws
*/
@SuppressWarnings
({
"static-access"
,
"rawtypes"
,
"unchecked"
})
@Override
@Transactional
(
value
=
"transactionManager"
)
public
void
insertUploadFileByUserId
(
InputObject
inputObject
,
OutputObject
outputObject
)
throws
Exception
{
...
...
@@ -271,7 +270,6 @@ public class SysEnclosureServiceImpl implements SysEnclosureService{
* @return void 返回类型
* @throws
*/
@SuppressWarnings
({
"resource"
,
"unchecked"
})
@Override
@Transactional
(
value
=
"transactionManager"
)
public
void
insertUploadFileChunksByUserId
(
InputObject
inputObject
,
OutputObject
outputObject
)
throws
Exception
{
...
...
@@ -331,7 +329,6 @@ public class SysEnclosureServiceImpl implements SysEnclosureService{
* @return void 返回类型
* @throws
*/
@SuppressWarnings
({
"unchecked"
,
"unused"
})
@Override
public
void
queryUploadFileChunksByChunkMd5
(
InputObject
inputObject
,
OutputObject
outputObject
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
inputObject
.
getParams
();
...
...
skyeye-knowlg/src/main/java/com/skyeye/eve/service/impl/KnowledgeContentServiceImpl.java
浏览文件 @
1d09d3ac
...
...
@@ -177,7 +177,6 @@ public class KnowledgeContentServiceImpl implements KnowledgeContentService {
* @return void 返回类型
* @throws
*/
@SuppressWarnings
({
"static-access"
,
"rawtypes"
,
"unchecked"
})
@Override
public
void
insertUploadFileByUserId
(
InputObject
inputObject
,
OutputObject
outputObject
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
inputObject
.
getParams
();
...
...
@@ -241,7 +240,6 @@ public class KnowledgeContentServiceImpl implements KnowledgeContentService {
* @return void 返回类型
* @throws
*/
@SuppressWarnings
({
"unchecked"
,
"resource"
})
@Override
public
void
insertUploadFileChunksByUserId
(
InputObject
inputObject
,
OutputObject
outputObject
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
inputObject
.
getParams
();
...
...
@@ -321,7 +319,6 @@ public class KnowledgeContentServiceImpl implements KnowledgeContentService {
* @return void 返回类型
* @throws
*/
@SuppressWarnings
({
"unchecked"
,
"unused"
})
@Override
public
void
queryUploadFileChunksByChunkMd5
(
InputObject
inputObject
,
OutputObject
outputObject
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
inputObject
.
getParams
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录