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
48e34aca
Commit
48e34aca
authored
Nov 26, 2025
by
王志超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 变更新增行动项,部门+人员唯一
parent
3f588999
Pipeline
#86155
passed with stages
in 1 minute 15 seconds
Changes
1
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
42 deletions
+18
-42
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+18
-42
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
48e34aca
...
@@ -1641,57 +1641,33 @@ public class ChangeFlowBiz {
...
@@ -1641,57 +1641,33 @@ public class ChangeFlowBiz {
return
;
return
;
}
}
// 用于记录
已选择的变更行动人
// 用于记录
邮箱对应的部门:邮箱 -> 部门
Set
<
String
>
usedExecUserKeys
=
new
HashSet
<>();
Map
<
String
,
String
>
userEmailToDepartment
=
new
HashMap
<>();
for
(
ChangeExecConfigReq
execConfig
:
changeExecProjectList
)
{
for
(
ChangeExecConfigReq
execConfig
:
changeExecProjectList
)
{
if
(
execConfig
.
getChangeExecUserType
()
==
null
||
StringUtils
.
isBlank
(
execConfig
.
getChangeExecUser
()))
{
// 校验部门+人员,需要邮箱和部门都不为空
if
(
StringUtils
.
isBlank
(
execConfig
.
getChangeExecUserEmail
())
||
StringUtils
.
isBlank
(
execConfig
.
getChangeExecDepartment
()))
{
continue
;
continue
;
}
}
Integer
changeExecUserType
=
execConfig
.
getChangeExecUserType
();
String
changeExecUserEmail
=
execConfig
.
getChangeExecUserEmail
();
String
changeExec
User
=
execConfig
.
getChangeExecUser
();
String
changeExec
Department
=
execConfig
.
getChangeExecDepartment
();
// 构建唯一标识key
// 检查该邮箱是否已经在其他部门出现过
String
key
;
String
existingDepartment
=
userEmailToDepartment
.
get
(
changeExecUserEmail
);
ChangeCommanderEnum
commanderEnum
=
ChangeCommanderEnum
.
getChangeCommanderEnum
(
changeExecUserType
);
if
(
existingDepartment
!=
null
&&
!
existingDepartment
.
equals
(
changeExecDepartment
))
{
String
errorMsg
=
String
.
format
(
"变更行动方案中,同一人员不能出现在多个部门:%s 已在部门 %s 中,不能同时出现在部门 %s"
,
if
(
commanderEnum
==
null
)
{
changeExecUserEmail
,
existingDepartment
,
changeExecDepartment
);
log
.
warn
(
"[validateDuplicateChangeExecUser] 未知的变更行动人类型: {}"
,
changeExecUserType
);
log
.
warn
(
"[validateDuplicateChangeExecUser] 检测到同一人员出现在多个部门: email={}, existingDept={}, newDept={}"
,
continue
;
changeExecUserEmail
,
existingDepartment
,
changeExecDepartment
);
}
switch
(
commanderEnum
)
{
case
COMMANDER_ORIGINATOR:
// 发起人:只判断类型
key
=
changeExecUserType
.
toString
();
break
;
case
FIXED_PERSON:
// 固定人:类型 + 邮箱(changeExecUser存储的是邮箱)
key
=
changeExecUserType
+
"_"
+
changeExecUser
;
break
;
case
GOODS_ASSOCIATED:
case
SUPPLIERS_ASSOCIATED:
// 商品关联角色/供应商关联角色:类型 + 角色名称(如"采购"、"计划"、"SQE"、"合规")
key
=
changeExecUserType
+
"_"
+
changeExecUser
;
break
;
default
:
log
.
warn
(
"[validateDuplicateChangeExecUser] 未处理的变更行动人类型: {}"
,
commanderEnum
);
continue
;
}
// 检查是否重复
if
(
usedExecUserKeys
.
contains
(
key
))
{
String
errorMsg
=
String
.
format
(
"变更行动方案中不能重复选择相同的变更行动人:%s-%s"
,
commanderEnum
.
getName
(),
changeExecUser
);
log
.
warn
(
"[validateDuplicateChangeExecUser] 检测到重复的变更行动人: type={}, user={}, key={}"
,
changeExecUserType
,
changeExecUser
,
key
);
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
BAD_REQUEST
,
errorMsg
);
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
BAD_REQUEST
,
errorMsg
);
}
}
usedExecUserKeys
.
add
(
key
);
// 记录邮箱和部门的对应关系(如果已存在相同部门,覆盖不影响)
log
.
debug
(
"[validateDuplicateChangeExecUser] 添加变更行动人: type={}, user={}, key={}"
,
userEmailToDepartment
.
put
(
changeExecUserEmail
,
changeExecDepartment
);
changeExecUserType
,
changeExecUser
,
key
);
log
.
debug
(
"[validateDuplicateChangeExecUser] 添加变更行动人: email={}, department={}"
,
changeExecUserEmail
,
changeExecDepartment
);
}
}
}
}
}
}
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