Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yanxuan-qc-change-system
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yx-qc-change-flow
yanxuan-qc-change-system
Commits
7a30c6a9
Commit
7a30c6a9
authored
Nov 20, 2025
by
王志超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 子执行项绑定topo工单
parent
e2a37b73
Pipeline
#85889
passed with stages
in 1 minute 30 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
9 deletions
+25
-9
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+25
-9
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
7a30c6a9
...
...
@@ -287,7 +287,7 @@ public class ChangeFlowBiz {
if
(
changeCommander
.
equals
(
uid
))
{
submitToExecutionNode
(
flowId
,
flowDataDTO
,
uid
,
content
,
changeRecord
);
// 创建子流程并绑定
createAndBindSubFlows
(
changeRecord
,
uid
,
name
,
flowName
);
createAndBindSubFlows
(
changeRecord
,
flowName
);
buildAndSendEmail
.
buildAndSendEmailCreate
(
changeRecord
,
changeExecRecords
,
changeType
,
changeCommander
,
changeFlowCreateReq
);
}
else
{
// 如果发起人≠变更负责人,只发送邮件(不提交节点,不创建子流程)
...
...
@@ -320,11 +320,9 @@ public class ChangeFlowBiz {
* 创建子流程并绑定到执行记录
*
* @param changeRecord 主流程记录
* @param uid 创建人
* @param name 创建人姓名
* @param flowName 主流程名称
*/
private
void
createAndBindSubFlows
(
ChangeRecord
changeRecord
,
String
uid
,
String
name
,
String
flowName
)
{
private
void
createAndBindSubFlows
(
ChangeRecord
changeRecord
,
String
flowName
)
{
// 从数据库查询执行记录列表
List
<
ChangeExecRecord
>
execRecords
=
changeFlowExecService
.
getChangeExecRecordList
(
changeRecord
.
getId
());
if
(
CollectionUtils
.
isEmpty
(
execRecords
))
{
...
...
@@ -333,8 +331,21 @@ public class ChangeFlowBiz {
}
for
(
ChangeExecRecord
execRecord
:
execRecords
)
{
// 子流程使用行动人作为创建人和审批人
String
execUserEmail
=
execRecord
.
getChangeExecUserEmail
();
if
(
StringUtils
.
isBlank
(
execUserEmail
))
{
log
.
warn
(
"[createAndBindSubFlows] 行动人邮箱为空, execRecordId:{}, changeRecordId:{}"
,
execRecord
.
getId
(),
changeRecord
.
getId
());
continue
;
}
// 查询行动人名称
IusUserInfoRsp
execUser
=
iusService
.
queryUserInfo
(
execUserEmail
);
String
execUserName
=
execUser
==
null
||
StringUtils
.
isBlank
(
execUser
.
getName
())
?
execUserEmail
:
execUser
.
getName
();
// 构建子流程工单内容
Map
<
String
,
Object
>
subFlowContent
=
buildFlowContent
(
uid
);
Map
<
String
,
Object
>
subFlowContent
=
buildFlowContent
(
execUserEmail
);
// 构建子流程工单名称:主流程名称 + 行动项内容(截取前100字符)
String
subFlowName
=
flowName
+
"-"
+
execRecord
.
getChangeExecProject
();
...
...
@@ -342,15 +353,16 @@ public class ChangeFlowBiz {
subFlowName
=
subFlowName
.
substring
(
0
,
100
)
+
"..."
;
}
FlowCreateReqDTO
subFlowCreateReqDTO
=
buildFlowCreateReqDTO
(
ChangeFlowEnum
.
CHANGE_SUB_FLOW
.
getTopoId
(),
uid
,
JSON
.
toJSONString
(
subFlowContent
),
FlowxOperationEnum
.
CREATE
.
getName
(),
name
,
subFlowName
);
FlowCreateReqDTO
subFlowCreateReqDTO
=
buildFlowCreateReqDTO
(
ChangeFlowEnum
.
CHANGE_SUB_FLOW
.
getTopoId
(),
execUserEmail
,
JSON
.
toJSONString
(
subFlowContent
),
FlowxOperationEnum
.
CREATE
.
getName
(),
execUserName
,
subFlowName
);
String
subFlowId
=
flowService
.
createFlow
(
subFlowCreateReqDTO
);
// 查询工单详情
FlowDataDTO
subFlowDataDTO
=
flowService
.
flowDetail
(
subFlowId
);
// 获取流程节点ID
String
subNodeId
=
subFlowDataDTO
.
getFlowMeta
().
getCurrNodeDataList
().
get
(
0
).
getNodeId
();
log
.
info
(
"[createAndBindSubFlows] changeRecordId:{}, subFlowId:{}, nodeId:{}"
,
changeRecord
.
getId
(),
subFlowId
,
subNodeId
);
log
.
info
(
"[createAndBindSubFlows] changeRecordId:{}, subFlowId:{}, nodeId:{}
, execUserEmail:{}
"
,
changeRecord
.
getId
(),
subFlowId
,
subNodeId
,
execUserEmail
);
// 更新执行记录,绑定子流程
execRecord
.
setSubFlowId
(
subFlowId
);
...
...
@@ -666,6 +678,10 @@ public class ChangeFlowBiz {
}
log
.
debug
(
"[NEW_CHANGE_FLOW_START] changeFiles:{}, uploadFiles:{}, allFiles:{}"
,
JSON
.
toJSONString
(
changeFiles
),
JSON
.
toJSONString
(
uploadFiles
),
JSON
.
toJSONString
(
allFiles
));
// 创建子流程并绑定(使用行动人作为创建人和审批人)
String
flowName
=
flowDataDTO
.
getFlowMeta
()
!=
null
&&
StringUtils
.
isNotBlank
(
flowDataDTO
.
getFlowMeta
().
getFlowName
())
?
flowDataDTO
.
getFlowMeta
().
getFlowName
()
:
""
;
createAndBindSubFlows
(
changeRecord
,
flowName
);
buildAndSendEmail
.
buildAndSendEmailSubmit
(
changeRecord
,
changeExecRecords
);
return
submitNode
;
case
CHANGE_FLOW_CONFIRM:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment