Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
J
jyzb_platformV2
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
赵剑炜
jyzb_platformV2
Commits
1b1f5ac8
Commit
1b1f5ac8
authored
Oct 10, 2023
by
赵剑炜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重写record方法
parent
520709b3
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
231 行增加
和
72 行删除
+231
-72
GlobalEndListener.java
jyzb-biz/src/main/java/com/junmp/jyzb/listener/GlobalEndListener.java
+39
-29
FlowTaskController.java
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/FlowTaskController.java
+2
-1
FlowViewerDto.java
jyzb-process/src/main/java/com/junmp/junmpProcess/dto/FlowViewerDto.java
+18
-0
ChildNode.java
jyzb-process/src/main/java/com/junmp/junmpProcess/dto/json/ChildNode.java
+0
-19
IFlowTaskService.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/IFlowTaskService.java
+2
-1
FlowTaskServiceImpl.java
jyzb-process/src/main/java/com/junmp/junmpProcess/service/impl/FlowTaskServiceImpl.java
+155
-21
BpmnConvert.java
jyzb-process/src/main/java/com/junmp/junmpProcess/utils/BpmnConvert.java
+0
-1
RecordVO.java
jyzb-process/src/main/java/com/junmp/junmpProcess/vo/RecordVO.java
+15
-0
没有找到文件。
jyzb-biz/src/main/java/com/junmp/jyzb/listener/GlobalEndListener.java
View file @
1b1f5ac8
...
...
@@ -20,8 +20,10 @@ import lombok.SneakyThrows;
import
org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent
;
import
org.flowable.common.engine.api.delegate.event.FlowableEngineEventType
;
import
org.flowable.common.engine.impl.event.FlowableEntityEventImpl
;
import
org.flowable.engine.HistoryService
;
import
org.flowable.engine.delegate.event.AbstractFlowableEngineEventListener
;
import
org.flowable.task.service.impl.persistence.entity.TaskEntity
;
import
org.flowable.variable.api.history.HistoricVariableInstance
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Component
;
...
...
@@ -35,6 +37,8 @@ import java.util.Map;
public
class
GlobalEndListener
extends
AbstractFlowableEngineEventListener
{
@Resource
public
OrderMainService
orderMainService
;
@Resource
private
HistoryService
historyService
;
protected
Logger
logger
=
LoggerFactory
.
getLogger
(
this
.
getClass
());
@SneakyThrows
...
...
@@ -46,41 +50,47 @@ import java.util.Map;
// 获取流程定义ID
String
processDefinitionId
=
event
.
getProcessDefinitionId
();
OrderMainReq
req
=
new
OrderMainReq
();
req
.
setProcessId
(
processInstanceId
);
OrderMain
existOrder
=
orderMainService
.
getOne
(
new
LambdaQueryWrapper
<
OrderMain
>()
.
eq
(
OrderMain:
:
getProcessId
,
req
.
getProcessId
())
);
UpdateOrderReq
updateOrderReq
=
new
UpdateOrderReq
();
updateOrderReq
.
setId
(
existOrder
.
getId
());
updateOrderReq
.
setExamineState
(
"finished"
);
updateOrderReq
.
setOrderState
(
"ready"
);
orderMainService
.
ChangeOrderState
(
updateOrderReq
);
// 获取流程实例关联的变量
Map
<
String
,
Object
>
processVariables
=
getProcessVariables
(
processInstanceId
);
if
(
processVariables
!=
null
)
List
<
HistoricVariableInstance
>
orderType
=
historyService
.
createHistoricVariableInstanceQuery
().
processInstanceId
(
processInstanceId
).
variableName
(
"orderType"
).
list
();
String
Type
=
orderType
.
get
(
0
).
getValue
().
toString
();
if
(
Type
.
equals
(
"workOrder"
))
//出入库单据
{
// 获取单据类型
String
documentType
=
(
String
)
processVariables
.
get
(
"documentType"
);
updateOrderReq
=
JSONObject
.
parseObject
(
documentType
,
new
TypeReference
<
UpdateOrderReq
>()
{
});
OrderMainReq
req
=
new
OrderMainReq
();
req
.
setProcessId
(
processInstanceId
);
OrderMain
existOrder
=
orderMainService
.
getOne
(
new
LambdaQueryWrapper
<
OrderMain
>()
.
eq
(
OrderMain:
:
getProcessId
,
req
.
getProcessId
())
);
UpdateOrderReq
updateOrderReq
=
new
UpdateOrderReq
();
updateOrderReq
.
setId
(
existOrder
.
getId
());
updateOrderReq
.
setExamineState
(
"finished"
);
updateOrderReq
.
setOrderState
(
"ready"
);
orderMainService
.
updateOrder
(
updateOrderReq
);
// 获取单据类型
String
orderReq
=
(
String
)
processVariables
.
get
(
"orderReq"
);
// 根据单据类型执行不同的操作
if
(
"equipment"
.
equals
(
documentType
))
{
// 执行装备相关操作,防止循环应用,丢入消息队列
orderMainService
.
AddOrder
(
updateOrderReq
);
}
else
if
(
"personnel"
.
equals
(
documentType
))
{
// 执行人员相关操作
// ...
}
orderMainService
.
ChangeOrderState
(
updateOrderReq
);
}
// 获取流程实例关联的变量
// Map<String, Object> processVariables = getProcessVariables(processInstanceId);
// if (processVariables!=null)
// {
// // 获取单据类型
// String documentType = (String) processVariables.get("documentType");
// updateOrderReq = JSONObject.parseObject(documentType, new TypeReference<UpdateOrderReq>() {
// });
// updateOrderReq.setExamineState("finished");
// updateOrderReq.setOrderState("ready");
// orderMainService.updateOrder(updateOrderReq);
// // 获取单据类型
// String orderReq = (String) processVariables.get("orderReq");
// // 根据单据类型执行不同的操作
// if ("equipment".equals(documentType)) {
// // 执行装备相关操作,防止循环应用,丢入消息队列
// orderMainService.AddOrder(updateOrderReq);
// } else if ("personnel".equals(documentType)) {
// // 执行人员相关操作
// // ...
// }
// }
}
}
...
...
jyzb-process/src/main/java/com/junmp/junmpProcess/controller/FlowTaskController.java
View file @
1b1f5ac8
...
...
@@ -7,6 +7,7 @@ import com.junmp.junmpProcess.dto.TaskDTO;
import
com.junmp.junmpProcess.service.IFlowInstanceService
;
import
com.junmp.junmpProcess.service.IFlowTaskService
;
import
com.junmp.junmpProcess.vo.HistoryProcessInstanceVO
;
import
com.junmp.junmpProcess.vo.RecordVO
;
import
com.junmp.junmpProcess.vo.TaskDetailVO
;
import
com.junmp.junmpProcess.vo.TaskVO
;
import
com.junmp.v2.common.bean.response.ApiRes
;
...
...
@@ -62,7 +63,7 @@ public class FlowTaskController {
@ApiOperation
(
"通过流程实例查看审批记录"
)
@PostMapping
(
"record"
)
public
ApiRes
<
List
<
TaskDetailVO
>
>
record
(
@RequestBody
HandleDataDTO
handleDataDTO
)
{
public
ApiRes
<
RecordVO
>
record
(
@RequestBody
HandleDataDTO
handleDataDTO
)
{
return
FlowTaskService
.
record
(
handleDataDTO
.
getProcessInstanceId
());
}
...
...
jyzb-process/src/main/java/com/junmp/junmpProcess/dto/FlowViewerDto.java
0 → 100644
View file @
1b1f5ac8
package
com
.
junmp
.
junmpProcess
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
FlowViewerDto
implements
Serializable
{
/**
* 流程key
*/
private
String
key
;
/**
* 是否完成(已经审批)
*/
private
boolean
completed
;
}
jyzb-process/src/main/java/com/junmp/junmpProcess/dto/json/ChildNode.java
View file @
1b1f5ac8
...
...
@@ -5,25 +5,6 @@ import lombok.Data;
import
java.util.List
;
/**
* @Author:LoveMyOrange
* @Description:
* @Date:Created in 2022/10/9 16:20
* <p>
* process: "
* {\"id\":\"root\",\
* "parentId\":null,\
* "type\":\"ROOT\",\
* "name\":\"发起人\",\
* "desc\":\"任何人\",\
* "props\":{\
* "assignedUser\":
* <p>
* <p>
* [{\"id\":1486186,\"name\":\"xx科技有限公司\",\"type\":\"dept\",\"sex\":null,\"selected\":false}],\
* "formPerms\":[{\"id\":\"field6131501574832\",\"title\":\"单行文本输入\",\"required\":true,\"perm\":\"E\"}]},\
* "children\":{\"id\":\"node_040730749764\",\"parentId\":\"root\",\"props\":{\"assignedType\":\"ASSIGN_USER\",\"mode\":\"AND\",\"sign\":true,\"nobody\":{\"handler\":\"TO_PASS\",\"assignedUser\":[]},\"timeLimit\":{\"timeout\":{\"unit\":\"H\",\"value\":\"1\"},\"handler\":{\"type\":\"REFUSE\",\"notify\":{\"once\":true,\"hour\":1}}},\"assignedUser\":[{\"id\":381496,\"name\":\"旅人\",\"type\":\"user\",\"sex\":false,\"selected\":false}],\"formPerms\":[{\"id\":\"field6131501574832\",\"title\":\"单行文本输入\",\"required\":true,\"perm\":\"R\"}],\"selfSelect\":{\"multiple\":false},\"leaderTop\":{\"endCondition\":\"TOP\",\"endLevel\":1},\"leader\":{\"level\":1},\"role\":[],\"refuse\":{\"type\":\"TO_END\",\"target\":\"\"},\"formUser\":\"\"},\"type\":\"APPROVAL\",\"name\":\"审批人\",\"children\":{}}}"
*/
@Data
public
class
ChildNode
{
private
String
id
;
...
...
jyzb-process/src/main/java/com/junmp/junmpProcess/service/IFlowTaskService.java
View file @
1b1f5ac8
...
...
@@ -5,6 +5,7 @@ import com.junmp.junmpProcess.dto.ApplyDTO;
import
com.junmp.junmpProcess.dto.HandleDataDTO
;
import
com.junmp.junmpProcess.dto.TaskDTO
;
import
com.junmp.junmpProcess.vo.HistoryProcessInstanceVO
;
import
com.junmp.junmpProcess.vo.RecordVO
;
import
com.junmp.junmpProcess.vo.TaskDetailVO
;
import
com.junmp.junmpProcess.vo.TaskVO
;
import
com.junmp.v2.common.bean.response.ApiRes
;
...
...
@@ -62,5 +63,5 @@ public interface IFlowTaskService {
*
* @return
*/
ApiRes
<
List
<
TaskDetailVO
>
>
record
(
String
processInstanceId
);
ApiRes
<
RecordVO
>
record
(
String
processInstanceId
);
}
jyzb-process/src/main/java/com/junmp/junmpProcess/service/impl/FlowTaskServiceImpl.java
View file @
1b1f5ac8
...
...
@@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.util.PageUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -13,13 +15,13 @@ import com.junmp.junmpProcess.common.utils.ReturnMsg;
import
com.junmp.junmpProcess.dto.*
;
import
com.junmp.junmpProcess.dto.json.ProcessUser
;
import
com.junmp.junmpProcess.dto.json.UserInfo
;
import
com.junmp.junmpProcess.entity.ProcessTemplates
;
import
com.junmp.junmpProcess.factory.FlowServiceFactory
;
import
com.junmp.junmpProcess.mapper.OrgUserMapper
;
import
com.junmp.junmpProcess.service.IFlowInstanceService
;
import
com.junmp.junmpProcess.service.IFlowTaskService
;
import
com.junmp.junmpProcess.vo.AttachmentVO
;
import
com.junmp.junmpProcess.vo.HistoryProcessInstanceVO
;
import
com.junmp.junmpProcess.vo.TaskDetailVO
;
import
com.junmp.junmpProcess.vo.TaskVO
;
import
com.junmp.junmpProcess.service.Repository.ProcessTemplateService
;
import
com.junmp.junmpProcess.vo.*
;
import
com.junmp.v2.auth.api.bean.login.LoginUser
;
import
com.junmp.v2.auth.api.context.LoginContext
;
import
com.junmp.v2.common.bean.response.ApiRes
;
...
...
@@ -28,13 +30,17 @@ import com.junmp.v2.db.api.page.PageResult;
import
com.junmp.v2.sys.user.entity.SysUser
;
import
com.junmp.v2.sys.user.service.SysUserService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.io.IOUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.flowable.bpmn.model.BpmnModel
;
import
org.flowable.bpmn.model.EndEvent
;
import
org.flowable.bpmn.model.FlowElement
;
import
org.flowable.bpmn.model.UserTask
;
import
org.flowable.common.engine.impl.identity.Authentication
;
import
org.flowable.engine.TaskService
;
import
org.flowable.engine.history.HistoricActivityInstance
;
import
org.flowable.engine.history.HistoricProcessInstance
;
import
org.flowable.engine.repository.ProcessDefinition
;
import
org.flowable.engine.runtime.ActivityInstance
;
import
org.flowable.engine.runtime.ProcessInstance
;
import
org.flowable.engine.task.Attachment
;
...
...
@@ -43,11 +49,14 @@ import org.flowable.task.api.DelegationState;
import
org.flowable.task.api.Task
;
import
org.flowable.task.api.history.HistoricTaskInstance
;
import
org.flowable.variable.api.history.HistoricVariableInstance
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.io.InputStream
;
import
java.nio.charset.StandardCharsets
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
static
com
.
junmp
.
junmpProcess
.
common
.
CommonConstants
.*;
...
...
@@ -55,10 +64,13 @@ import static com.junmp.junmpProcess.common.CommonConstants.*;
@Service
@Slf4j
public
class
FlowTaskServiceImpl
extends
FlowServiceFactory
implements
IFlowTaskService
{
@Resource
private
OrgUserMapper
orgUserMapper
;
@Resource
private
SysUserService
sysUserService
;
@Autowired
private
ProcessTemplateService
processTemplateService
;
@Autowired
private
IFlowInstanceService
flowInstanceService
;
@Override
public
ResponseResult
agree
(
HandleDataDTO
handleDataDTO
)
{
SysUser
StartUser
=
new
SysUser
();
...
...
@@ -80,7 +92,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
Task
task
=
taskService
.
createTaskQuery
().
taskId
(
taskId
).
singleResult
();
if
(
task
!=
null
)
//task为空则说明当前任务可能已结束
{
taskService
.
setVariableLocal
(
taskId
,
"taskStatusWrapper"
,
TASK_STATUS_1
);
taskService
.
setVariableLocal
(
taskId
,
"taskStatusWrapper"
,
TASK_STATUS_1
);
//设置当前节点任务状态
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
formData
!=
null
&&
formData
.
size
()
>
0
)
{
...
...
@@ -406,17 +418,28 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
@Override
public
ApiRes
<
List
<
TaskDetailVO
>>
record
(
String
processInstanceId
)
{
public
ApiRes
<
RecordVO
>
record
(
String
processInstanceId
)
{
RecordVO
vo
=
new
RecordVO
();
String
tempID
=
flowInstanceService
.
getFormIdByInstanceId
(
processInstanceId
);
//先拿到表单id,然后通过表单拿到初始表结构
ProcessTemplates
processTemplates
=
processTemplateService
.
getById
(
tempID
);
Object
formJson
=
processTemplates
.
getProcessJson
();
List
<
Comment
>
processInstanceComments
=
taskService
.
getProcessInstanceComments
(
processInstanceId
);
HistoricProcessInstance
historicProcessInstance
=
historyService
.
createHistoricProcessInstanceQuery
()
.
processInstanceId
(
processInstanceId
)
.
singleResult
();
String
deployId
=
historicProcessInstance
.
getDeploymentId
();
Map
<
String
,
Object
>
result
=
Test
(
processInstanceId
,
deployId
);
vo
.
setResult
(
result
);
Map
<
String
,
List
<
Comment
>>
commentsMap
=
processInstanceComments
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
Comment:
:
getTaskId
,
Collectors
.
toList
()));
List
<
Attachment
>
processInstanceAttachments
=
taskService
.
getProcessInstanceAttachments
(
processInstanceId
);
Map
<
String
,
List
<
Attachment
>>
attachmentMap
=
processInstanceAttachments
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
Attachment:
:
getTaskId
));
List
<
HistoricActivityInstance
>
list
=
historyService
.
createHistoricActivityInstanceQuery
().
processInstanceId
(
processInstanceId
).
orderByHistoricActivityInstanceStartTime
().
asc
().
list
();
List
<
TaskDetailVO
>
taskDetailVOS
=
new
ArrayList
<>();
for
(
HistoricActivityInstance
historicActivityInstance
:
list
)
{
if
(
"startEvent"
.
equals
(
historicActivityInstance
.
getActivityType
())){
TaskDetailVO
taskDetailVO
=
new
TaskDetailVO
();
...
...
@@ -426,8 +449,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskDetailVO
.
setTaskStatusWrapper
(
"发起"
);
taskDetailVO
.
setCreateTime
(
historicActivityInstance
.
getStartTime
());
taskDetailVO
.
setEndTime
(
historicActivityInstance
.
getEndTime
());
// List<Comment> comments = commentsMap.get(historicActivityInstance.getTaskId());
// taskDetailVO.setComment(comments.get(0).getFullMessage());
if
(
historicActivityInstance
.
getAssignee
()!=
null
)
{
SysUser
user
=
sysUserService
.
getById
(
historicActivityInstance
.
getAssignee
());
...
...
@@ -438,10 +459,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskDetailVOS
.
add
(
taskDetailVO
);
// taskDetailVO.setSignImage();
// taskDetailVO.setAttachmentVOList();
// taskDetailVO.setOptionVOList();
// taskDetailVO.setCommentVOList();
}
else
if
(
"endEvent"
.
equals
(
historicActivityInstance
.
getActivityType
())){
TaskDetailVO
taskDetailVO
=
new
TaskDetailVO
();
...
...
@@ -451,8 +468,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskDetailVO
.
setTaskStatusWrapper
(
"结束"
);
taskDetailVO
.
setCreateTime
(
historicActivityInstance
.
getStartTime
());
taskDetailVO
.
setEndTime
(
historicActivityInstance
.
getEndTime
());
// List<Comment> comments = commentsMap.get(historicActivityInstance.getTaskId());
// taskDetailVO.setComment(comments.get(0).getFullMessage());
taskDetailVOS
.
add
(
taskDetailVO
);
}
...
...
@@ -470,7 +486,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
{
taskDetailVO
.
setTaskStatusWrapper
(
taskStatusWrapper
.
get
(
0
).
getValue
().
toString
());
}
// taskDetailVO.setTaskStatusWrapper(historicActivityInstance.getVariable("taskStatusWrapper"));
if
(
historicActivityInstance
.
getAssignee
()!=
null
)
{
SysUser
user
=
sysUserService
.
getById
(
historicActivityInstance
.
getAssignee
());
...
...
@@ -480,7 +495,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskDetailVO
.
setName
(
historicActivityInstance
.
getActivityName
());
taskDetailVO
.
setCreateTime
(
historicActivityInstance
.
getStartTime
());
taskDetailVO
.
setEndTime
(
historicActivityInstance
.
getEndTime
());
// taskDetailVO.setComment(comment.getFullMessage());
List
<
Attachment
>
attachments
=
attachmentMap
.
get
(
historicActivityInstance
.
getTaskId
());
List
<
AttachmentVO
>
attachmentVOList
=
new
ArrayList
<>();
...
...
@@ -508,12 +522,132 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
}
}
}
// 查询流程定义信息
ProcessDefinition
processDefinition
=
repositoryService
.
createProcessDefinitionQuery
()
.
deploymentId
(
deployId
)
.
singleResult
();
// 获取所有任务节点信息
BpmnModel
bpmnModel
=
repositoryService
.
getBpmnModel
(
processDefinition
.
getId
());
Collection
<
FlowElement
>
flowElements
=
bpmnModel
.
getMainProcess
().
getFlowElements
();
// 构建任务节点信息的映射
Map
<
String
,
FlowElement
>
flowElementMap
=
flowElements
.
stream
()
.
filter
(
flowElement
->
flowElement
instanceof
UserTask
)
.
collect
(
Collectors
.
toMap
(
FlowElement:
:
getId
,
Function
.
identity
()));
// 遍历所有任务节点和结束节点,如果不在已有任务列表中,则添加到结果中
for
(
FlowElement
flowElement
:
flowElements
)
{
if
(
flowElement
instanceof
UserTask
&&
!
taskDetailVOS
.
stream
().
anyMatch
(
task
->
task
.
getActivityId
().
equals
(
flowElement
.
getId
())))
{
TaskDetailVO
taskDetailVO
=
new
TaskDetailVO
();
taskDetailVO
.
setActivityId
(
flowElement
.
getId
());
taskDetailVO
.
setName
(
flowElement
.
getName
());
// 其他属性的设置,根据需要进行修改
// 将任务节点或结束节点添加到结果列表
taskDetailVOS
.
add
(
taskDetailVO
);
}
}
return
ApiRes
.
success
(
taskDetailVOS
);
JSONObject
jsonForm
=
JSON
.
parseObject
(
formJson
.
toString
());
JSONArray
jsonArray2
=
new
JSONArray
(
Collections
.
singletonList
(
taskDetailVOS
));
JSONObject
formJsonObj
=
matchAndMergeData
(
jsonForm
,
jsonArray2
);
vo
.
setFormJson
(
formJsonObj
);
vo
.
setTaskVo
(
taskDetailVOS
);
return
ApiRes
.
success
(
vo
);
}
private
static
JSONObject
matchAndMergeData
(
JSONObject
data1
,
JSONArray
data2
)
{
if
(
data1
.
containsKey
(
"id"
)
&&
data1
.
containsKey
(
"childNode"
))
{
String
id1
=
data1
.
getString
(
"id"
);
// 获取第一条数据
JSONArray
jsonArray
=
data2
.
getJSONArray
(
0
);
// 查找匹配的数据
TaskDetailVO
matchingData
=
jsonArray
.
stream
()
.
filter
(
item
->
item
instanceof
TaskDetailVO
)
.
map
(
item
->
(
TaskDetailVO
)
item
)
.
filter
(
item
->
id1
.
equals
(
removeNodePrefix
(
item
.
getActivityId
())))
.
findFirst
()
.
orElse
(
null
);
// 如果找到匹配的数据,则将匹配的值设置到 data1 中
if
(
matchingData
!=
null
)
{
if
(
matchingData
.
getTaskStatusWrapper
()==
null
)
{
data1
.
put
(
"status"
,
"未进行"
);
}
else
{
data1
.
put
(
"status"
,
matchingData
.
getTaskStatusWrapper
());
}
}
// 递归处理子节点
if
(
data1
.
containsKey
(
"childNode"
)
&&
data1
.
get
(
"childNode"
)
instanceof
JSONObject
)
{
matchAndMergeData
(
data1
.
getJSONObject
(
"childNode"
),
data2
);
}
}
return
data1
;
}
private
static
String
removeNodePrefix
(
String
activityId
)
{
// 移除前缀"Node_"
return
activityId
.
startsWith
(
"Node_"
)
?
activityId
.
substring
(
5
)
:
activityId
;
}
private
Map
<
String
,
Object
>
Test
(
String
procInsId
,
String
deployId
)
{
try
{
List
<
FlowViewerDto
>
flowViewerList
=
new
ArrayList
<>();
// 获取已经完成的节点
List
<
HistoricActivityInstance
>
listFinished
=
historyService
.
createHistoricActivityInstanceQuery
()
.
processInstanceId
(
procInsId
)
.
finished
()
.
list
();
// 保存已经完成的流程节点编号
listFinished
.
forEach
(
s
->
{
FlowViewerDto
flowViewerDto
=
new
FlowViewerDto
();
flowViewerDto
.
setKey
(
s
.
getActivityId
());
flowViewerDto
.
setCompleted
(
true
);
flowViewerList
.
add
(
flowViewerDto
);
});
// 获取代办节点
List
<
HistoricActivityInstance
>
listUnFinished
=
historyService
.
createHistoricActivityInstanceQuery
()
.
processInstanceId
(
procInsId
)
.
unfinished
()
.
list
();
// 保存需要代办的节点编号
listUnFinished
.
forEach
(
s
->
{
FlowViewerDto
flowViewerDto
=
new
FlowViewerDto
();
flowViewerDto
.
setKey
(
s
.
getActivityId
());
flowViewerDto
.
setCompleted
(
false
);
flowViewerList
.
add
(
flowViewerDto
);
});
Map
<
String
,
Object
>
result
=
new
HashMap
();
// xmlData 数据
ProcessDefinition
definition
=
repositoryService
.
createProcessDefinitionQuery
().
deploymentId
(
deployId
).
singleResult
();
InputStream
inputStream
=
repositoryService
.
getResourceAsStream
(
definition
.
getDeploymentId
(),
definition
.
getResourceName
());
String
xmlData
=
IOUtils
.
toString
(
inputStream
,
StandardCharsets
.
UTF_8
);
result
.
put
(
"nodeData"
,
flowViewerList
);
result
.
put
(
"xmlData"
,
xmlData
);
return
result
;
}
catch
(
Exception
e
)
{
return
null
;
}
}
/**
* @Author: Zhaojw
* @Description: 为用户赋值
...
...
jyzb-process/src/main/java/com/junmp/junmpProcess/utils/BpmnConvert.java
View file @
1b1f5ac8
...
...
@@ -133,7 +133,6 @@ public class BpmnConvert {
*/
private
static
Inout
drawBzNode
(
Process
process
,
JsonNode
node
,
JsonNode
formJson
,
String
typeNode
)
{
// String id= "Node_"+UUID.randomUUID();
String
id
=
"root"
;
//创建发起人结点
UserTask
task
=
new
UserTask
();
...
...
jyzb-process/src/main/java/com/junmp/junmpProcess/vo/RecordVO.java
0 → 100644
View file @
1b1f5ac8
package
com
.
junmp
.
junmpProcess
.
vo
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Map
;
@Data
public
class
RecordVO
{
private
List
<
TaskDetailVO
>
taskVo
;
Map
<
String
,
Object
>
result
;
JSONObject
formJson
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论