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
b9eb55a4
Commit
b9eb55a4
authored
Dec 05, 2025
by
王志超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 主单审批,驳回选定的行动工单
parent
8476e93e
Pipeline
#86577
passed with stages
in 1 minute 31 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
14 deletions
+15
-14
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+15
-14
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
b9eb55a4
...
...
@@ -1687,7 +1687,7 @@ public class ChangeFlowBiz {
changeFlowService
.
updateRecord
(
changeRecord
);
// 重置被驳回的子单(已过滤,直接重置并流转工单)
int
resetCount
=
resetRejectedSubFlows
(
subFlowsToReject
,
rejectReason
);
int
resetCount
=
resetRejectedSubFlows
(
subFlowsToReject
,
node
.
getName
(),
rejectReason
);
// 发送审批不通过邮件通知
// sendMainFlowRejectEmail(changeRecord, node.getName(), rejectReason, resetCount);
...
...
@@ -1916,17 +1916,18 @@ public class ChangeFlowBiz {
* 将子单状态和节点重置到初始状态,保留流程记录
*
* @param subFlowsToReject 要驳回的子单列表(已过滤,直接处理)
* @param rejectNodeName 驳回节点名称(用于记录是哪个审批节点驳回的)
* @param rejectReason 驳回原因
* @return 实际重置的子单数量
*/
private
int
resetRejectedSubFlows
(
List
<
ChangeSubFlowRecord
>
subFlowsToReject
,
String
rejectReason
)
{
private
int
resetRejectedSubFlows
(
List
<
ChangeSubFlowRecord
>
subFlowsToReject
,
String
reject
NodeName
,
String
reject
Reason
)
{
if
(
CollectionUtils
.
isEmpty
(
subFlowsToReject
))
{
log
.
info
(
"[resetRejectedSubFlows] 未指定要驳回的子单
"
);
log
.
info
(
"[resetRejectedSubFlows] 未指定要驳回的子单
,驳回节点:{}"
,
rejectNodeName
);
return
0
;
}
log
.
info
(
"[resetRejectedSubFlows] 开始重置被驳回的子单,待重置数量:{}, 驳回原因:{}"
,
subFlowsToReject
.
size
(),
rejectReason
);
log
.
info
(
"[resetRejectedSubFlows] 开始重置被驳回的子单,
驳回节点:{},
待重置数量:{}, 驳回原因:{}"
,
rejectNodeName
,
subFlowsToReject
.
size
(),
rejectReason
);
int
resetCount
=
0
;
int
skippedCount
=
0
;
...
...
@@ -1955,18 +1956,18 @@ public class ChangeFlowBiz {
}
// 构建提交内容
Map
<
String
,
Object
>
subFlowContent
=
new
HashMap
<>(
CommonConstants
.
INIT_HASH_MAP_SIZE
);
subFlowContent
.
put
(
"updateTime"
,
System
.
currentTimeMillis
());
subFlowContent
.
put
(
CommonConstants
.
FLOW_OPERATION_KEY
,
FlowOperationTypeEnum
.
PASS
.
getValue
());
String
currentUid
=
RequestLocalBean
.
getUid
();
Map
<
String
,
Object
>
subFlowContent
=
buildFlowContent
(
currentUid
);
// 使用 paramMap 流转子单工单(type=2 回到初始节点)
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"type"
,
FlowTransitionType
.
TYPE_REJECTED
);
String
operateDesc
=
String
.
format
(
"变更工单,%s审批不通过,驳回行动工单"
,
rejectNodeName
);
String
startNodeId
=
flowService
.
submitFlowWithParamMap
(
subFlowId
,
subFlowDataDTO
,
RequestLocalBean
.
getUid
()
,
ChangeFlowEnum
.
CHANGE_SUB_FLOW
.
getTopoId
(),
currentUid
,
ChangeFlowEnum
.
CHANGE_SUB_FLOW
.
getTopoId
(),
JSON
.
toJSONString
(
subFlowContent
),
paramMap
,
FlowxOperationEnum
.
SUBMIT
.
getName
(),
"主单审批不通过,驳回行动工单"
,
subFlowRecord
.
getCreateTime
());
FlowxOperationEnum
.
SUBMIT
.
getName
(),
operateDesc
,
subFlowRecord
.
getCreateTime
());
// 重置子单记录到初始状态
subFlowRecord
.
setSubFlowNode
(
startNodeId
);
...
...
@@ -1981,8 +1982,8 @@ public class ChangeFlowBiz {
changeSubFlowRecordService
.
update
(
subFlowRecord
);
resetCount
++;
log
.
info
(
"[resetRejectedSubFlows] 子单已驳回并重置到初始状态, subFlowId:{}, 原节点:{}, 新节点:{}, status:{}"
,
subFlowId
,
oldNodeId
,
startNodeId
,
ChangeSubFlowStatusEnum
.
WAIT_CONFIRM_ACTION_PLAN
.
getStatus
());
log
.
info
(
"[resetRejectedSubFlows] 子单已驳回并重置到初始状态, subFlowId:{},
驳回节点:{},
原节点:{}, 新节点:{}, status:{}"
,
subFlowId
,
rejectNodeName
,
oldNodeId
,
startNodeId
,
ChangeSubFlowStatusEnum
.
WAIT_CONFIRM_ACTION_PLAN
.
getStatus
());
}
catch
(
Exception
e
)
{
log
.
error
(
"[resetRejectedSubFlows] 重置子单失败, subFlowId:{}, error:{}"
,
subFlowId
,
e
.
getMessage
(),
e
);
...
...
@@ -1990,8 +1991,8 @@ public class ChangeFlowBiz {
}
}
log
.
info
(
"[resetRejectedSubFlows] 子单重置完成,待重置数:{}, 已重置:{}, 跳过:{}"
,
subFlowsToReject
.
size
(),
resetCount
,
skippedCount
);
log
.
info
(
"[resetRejectedSubFlows] 子单重置完成,
驳回节点:{},
待重置数:{}, 已重置:{}, 跳过:{}"
,
rejectNodeName
,
subFlowsToReject
.
size
(),
resetCount
,
skippedCount
);
return
resetCount
;
}
...
...
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