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
22b650b7
Commit
22b650b7
authored
Feb 04, 2026
by
王志超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:变更配置管理,导出增加行动项配置相关信息
parent
3b3e7c98
Pipeline
#88919
passed with stages
in 1 minute 32 seconds
Changes
3
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
96 additions
and
35 deletions
+96
-35
ChangeConfigExportCallback.java
...nxuan/change/biz/callback/ChangeConfigExportCallback.java
+44
-33
ChangeConfigExcelDTO.java
...anxuan/change/integration/excel/ChangeConfigExcelDTO.java
+17
-1
ChangeConfigExcelVo.java
...yanxuan/change/integration/excel/ChangeConfigExcelVo.java
+35
-1
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/callback/ChangeConfigExportCallback.java
View file @
22b650b7
package
com
.
netease
.
mail
.
yanxuan
.
change
.
biz
.
callback
;
package
com
.
netease
.
mail
.
yanxuan
.
change
.
biz
.
callback
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.HashSet
;
...
@@ -8,6 +9,7 @@ import java.util.Map;
...
@@ -8,6 +9,7 @@ import java.util.Map;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -18,12 +20,14 @@ import com.netease.mail.dp.des.process.api.entity.CallbackQueryReq;
...
@@ -18,12 +20,14 @@ import com.netease.mail.dp.des.process.api.entity.CallbackQueryReq;
import
com.netease.mail.dp.des.process.api.entity.ExcelCell
;
import
com.netease.mail.dp.des.process.api.entity.ExcelCell
;
import
com.netease.mail.dp.des.process.api.entity.ExcelTitle
;
import
com.netease.mail.dp.des.process.api.entity.ExcelTitle
;
import
com.netease.mail.dp.des.starter.callback.DesCallbackService
;
import
com.netease.mail.dp.des.starter.callback.DesCallbackService
;
import
com.netease.mail.yanxuan.change.biz.service.change.ChangeExecConfigService
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeCommanderEnum
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeLevelEnum
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeLevelEnum
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeCommanderEnum
;
import
com.netease.mail.yanxuan.change.common.enums.NeedFileEnum
;
import
com.netease.mail.yanxuan.change.common.enums.NeedFileEnum
;
import
com.netease.mail.yanxuan.change.common.util.DateUtils
;
import
com.netease.mail.yanxuan.change.common.util.DateUtils
;
import
com.netease.mail.yanxuan.change.common.util.ExcelUtil
;
import
com.netease.mail.yanxuan.change.common.util.ExcelUtil
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeExecConfig
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeType
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeType
;
import
com.netease.mail.yanxuan.change.dal.mapper.ChangeConfigMapper
;
import
com.netease.mail.yanxuan.change.dal.mapper.ChangeConfigMapper
;
import
com.netease.mail.yanxuan.change.dal.mapper.ChangeTypeMapper
;
import
com.netease.mail.yanxuan.change.dal.mapper.ChangeTypeMapper
;
...
@@ -35,7 +39,7 @@ import com.netease.mail.yanxuan.change.integration.excel.ChangeConfigExcelVo;
...
@@ -35,7 +39,7 @@ import com.netease.mail.yanxuan.change.integration.excel.ChangeConfigExcelVo;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
/**
/**
* 变更配置导出回调
* 变更配置导出回调
。一层主表 + 二层行动项:无行动项时输出一行主数据,有多条行动项时主数据复制多行,总行数按展开后的行数。
*/
*/
@Slf4j
@Slf4j
@Component
@Component
...
@@ -47,6 +51,9 @@ public class ChangeConfigExportCallback implements DesCallbackService {
...
@@ -47,6 +51,9 @@ public class ChangeConfigExportCallback implements DesCallbackService {
@Autowired
@Autowired
private
ChangeTypeMapper
changeTypeMapper
;
private
ChangeTypeMapper
changeTypeMapper
;
@Autowired
private
ChangeExecConfigService
changeExecConfigService
;
@Override
@Override
public
ExcelTitle
queryExcelTitle
(
CallbackQueryReq
req
)
{
public
ExcelTitle
queryExcelTitle
(
CallbackQueryReq
req
)
{
log
.
info
(
"[op: change config export callback queryExcelTitle] req={}"
,
JSON
.
toJSONString
(
req
));
log
.
info
(
"[op: change config export callback queryExcelTitle] req={}"
,
JSON
.
toJSONString
(
req
));
...
@@ -78,7 +85,9 @@ public class ChangeConfigExportCallback implements DesCallbackService {
...
@@ -78,7 +85,9 @@ public class ChangeConfigExportCallback implements DesCallbackService {
private
List
<
ChangeConfigExcelDTO
>
getExportList
(
ChangeConfigQueryReq
query
)
{
private
List
<
ChangeConfigExcelDTO
>
getExportList
(
ChangeConfigQueryReq
query
)
{
List
<
ChangeConfigPo
>
changeConfigPos
=
changeConfigMapper
.
selectChangeConfigPoWithLimit
(
query
);
List
<
ChangeConfigPo
>
changeConfigPos
=
changeConfigMapper
.
selectChangeConfigPoWithLimit
(
query
);
if
(
changeConfigPos
.
isEmpty
())
{
return
new
ArrayList
<>();
}
// 处理执行部门格式
// 处理执行部门格式
changeConfigPos
.
forEach
(
i
->
{
changeConfigPos
.
forEach
(
i
->
{
if
(
StringUtils
.
isNotBlank
(
i
.
getParticipateChangeExecDepartment
()))
{
if
(
StringUtils
.
isNotBlank
(
i
.
getParticipateChangeExecDepartment
()))
{
...
@@ -104,32 +113,41 @@ public class ChangeConfigExportCallback implements DesCallbackService {
...
@@ -104,32 +113,41 @@ public class ChangeConfigExportCallback implements DesCallbackService {
Map
<
Long
,
ChangeType
>
changeTypeMap
=
new
HashMap
<>();
Map
<
Long
,
ChangeType
>
changeTypeMap
=
new
HashMap
<>();
if
(!
changeTypeIds
.
isEmpty
())
{
if
(!
changeTypeIds
.
isEmpty
())
{
List
<
Long
>
idList
=
new
java
.
util
.
ArrayList
<>(
changeTypeIds
);
List
<
ChangeType
>
changeTypes
=
changeTypeMapper
.
selectByIds
(
new
ArrayList
<>(
changeTypeIds
));
List
<
ChangeType
>
changeTypes
=
changeTypeMapper
.
selectByIds
(
idList
);
if
(
changeTypes
!=
null
)
{
if
(
changeTypes
!=
null
)
{
for
(
ChangeType
c
hangeType
:
changeTypes
)
{
for
(
ChangeType
c
t
:
changeTypes
)
{
changeTypeMap
.
put
(
c
hangeType
.
getId
(),
changeType
);
changeTypeMap
.
put
(
c
t
.
getId
(),
ct
);
}
}
}
}
}
}
final
Map
<
Long
,
ChangeType
>
finalChangeTypeMap
=
changeTypeMap
;
final
Map
<
Long
,
ChangeType
>
finalChangeTypeMap
=
changeTypeMap
;
return
changeConfigPos
.
stream
().
map
(
po
->
{
List
<
ChangeConfigExcelDTO
>
expanded
=
new
ArrayList
<>();
for
(
ChangeConfigPo
po
:
changeConfigPos
)
{
List
<
ChangeExecConfig
>
execs
=
changeExecConfigService
.
queryChangeExecConfig
(
po
.
getId
());
if
(
CollectionUtils
.
isEmpty
(
execs
))
{
expanded
.
add
(
buildRow
(
po
,
null
,
finalChangeTypeMap
));
}
else
{
for
(
ChangeExecConfig
exec
:
execs
)
{
expanded
.
add
(
buildRow
(
po
,
exec
,
finalChangeTypeMap
));
}
}
}
return
expanded
;
}
private
ChangeConfigExcelDTO
buildRow
(
ChangeConfigPo
po
,
ChangeExecConfig
exec
,
Map
<
Long
,
ChangeType
>
changeTypeMap
)
{
ChangeConfigExcelDTO
dto
=
new
ChangeConfigExcelDTO
();
ChangeConfigExcelDTO
dto
=
new
ChangeConfigExcelDTO
();
// 一层:主表字段
dto
.
setId
(
po
.
getId
());
dto
.
setId
(
po
.
getId
());
// 变更主体
if
(
po
.
getChangeSubject
()
!=
null
)
{
if
(
po
.
getChangeSubject
()
!=
null
)
{
dto
.
setChangeSubject
(
ChangeSubjectEnum
.
getChangeSubjectEnum
(
po
.
getChangeSubject
())
!=
null
dto
.
setChangeSubject
(
ChangeSubjectEnum
.
getChangeSubjectEnum
(
po
.
getChangeSubject
())
!=
null
?
ChangeSubjectEnum
.
getChangeSubjectEnum
(
po
.
getChangeSubject
()).
getDesc
()
:
""
);
?
ChangeSubjectEnum
.
getChangeSubjectEnum
(
po
.
getChangeSubject
()).
getDesc
()
:
""
);
}
}
// 变更类型:从 Map 中获取,格式为"一级>二级"
String
changeType
=
""
;
String
changeType
=
""
;
if
(
po
.
getParentChangeClassId
()
!=
null
&&
po
.
getSonChangeClassId
()
!=
null
)
{
if
(
po
.
getParentChangeClassId
()
!=
null
&&
po
.
getSonChangeClassId
()
!=
null
)
{
ChangeType
parentType
=
finalC
hangeTypeMap
.
get
(
po
.
getParentChangeClassId
().
longValue
());
ChangeType
parentType
=
c
hangeTypeMap
.
get
(
po
.
getParentChangeClassId
().
longValue
());
ChangeType
sonType
=
finalC
hangeTypeMap
.
get
(
po
.
getSonChangeClassId
().
longValue
());
ChangeType
sonType
=
c
hangeTypeMap
.
get
(
po
.
getSonChangeClassId
().
longValue
());
if
(
parentType
!=
null
&&
sonType
!=
null
)
{
if
(
parentType
!=
null
&&
sonType
!=
null
)
{
changeType
=
parentType
.
getTypeName
()
+
">"
+
sonType
.
getTypeName
();
changeType
=
parentType
.
getTypeName
()
+
">"
+
sonType
.
getTypeName
();
}
else
if
(
parentType
!=
null
)
{
}
else
if
(
parentType
!=
null
)
{
...
@@ -139,47 +157,40 @@ public class ChangeConfigExportCallback implements DesCallbackService {
...
@@ -139,47 +157,40 @@ public class ChangeConfigExportCallback implements DesCallbackService {
}
}
}
}
dto
.
setChangeType
(
changeType
);
dto
.
setChangeType
(
changeType
);
// 变更等级
if
(
po
.
getChangeLevel
()
!=
null
)
{
if
(
po
.
getChangeLevel
()
!=
null
)
{
dto
.
setChangeLevel
(
ChangeLevelEnum
.
getByType
(
po
.
getChangeLevel
()));
dto
.
setChangeLevel
(
ChangeLevelEnum
.
getByType
(
po
.
getChangeLevel
()));
}
}
dto
.
setChangeDepartment
(
po
.
getChangeDepartment
());
dto
.
setChangeDepartment
(
po
.
getChangeDepartment
());
dto
.
setParticipateChangeExecDepartment
(
po
.
getParticipateChangeExecDepartment
());
dto
.
setParticipateChangeExecDepartment
(
po
.
getParticipateChangeExecDepartment
());
// 变更负责人类型
if
(
po
.
getChangeCommanderType
()
!=
null
)
{
if
(
po
.
getChangeCommanderType
()
!=
null
)
{
ChangeCommanderEnum
commanderEnum
=
ChangeCommanderEnum
.
getChangeCommanderEnum
(
po
.
getChangeCommanderType
());
ChangeCommanderEnum
commanderEnum
=
ChangeCommanderEnum
.
getChangeCommanderEnum
(
po
.
getChangeCommanderType
());
dto
.
setChangeCommanderType
(
commanderEnum
!=
null
?
commanderEnum
.
getName
()
:
""
);
dto
.
setChangeCommanderType
(
commanderEnum
!=
null
?
commanderEnum
.
getName
()
:
""
);
}
}
dto
.
setChangeCommander
(
po
.
getChangeCommander
());
dto
.
setChangeCommander
(
po
.
getChangeCommander
());
// 是否需要资料
if
(
po
.
getNeedFile
()
!=
null
)
{
if
(
po
.
getNeedFile
()
!=
null
)
{
String
needFileDesc
=
""
;
for
(
NeedFileEnum
e
:
NeedFileEnum
.
values
())
{
for
(
NeedFileEnum
needFileEnum
:
NeedFileEnum
.
values
())
{
if
(
e
.
getStatus
().
equals
(
po
.
getNeedFile
()))
{
if
(
needFileEnum
.
getStatus
().
equals
(
po
.
getNeedFile
()))
{
dto
.
setNeedFile
(
e
.
getDesc
());
needFileDesc
=
needFileEnum
.
getDesc
();
break
;
break
;
}
}
}
}
dto
.
setNeedFile
(
needFileDesc
);
}
}
dto
.
setCreator
(
po
.
getCreator
());
dto
.
setCreator
(
po
.
getCreator
());
// 时间格式化
if
(
po
.
getCreateTime
()
!=
null
)
{
if
(
po
.
getCreateTime
()
!=
null
)
{
dto
.
setCreateTime
(
DateUtils
.
parseLongToString
(
po
.
getCreateTime
(),
DateUtils
.
DATE_TIME_FORMAT
));
dto
.
setCreateTime
(
DateUtils
.
parseLongToString
(
po
.
getCreateTime
(),
DateUtils
.
DATE_TIME_FORMAT
));
}
}
if
(
po
.
getUpdateTime
()
!=
null
)
{
if
(
po
.
getUpdateTime
()
!=
null
)
{
dto
.
setUpdateTime
(
DateUtils
.
parseLongToString
(
po
.
getUpdateTime
(),
DateUtils
.
DATE_TIME_FORMAT
));
dto
.
setUpdateTime
(
DateUtils
.
parseLongToString
(
po
.
getUpdateTime
(),
DateUtils
.
DATE_TIME_FORMAT
));
}
}
// 二层:行动项
if
(
exec
!=
null
)
{
dto
.
setChangeExecDepartment
(
exec
.
getChangeExecDepartment
());
dto
.
setChangeExecUser
(
exec
.
getChangeExecUser
());
dto
.
setChangeRiskDesc
(
exec
.
getChangeRiskDesc
());
dto
.
setChangeExecProject
(
exec
.
getChangeExecProject
());
dto
.
setChangeChecking
(
exec
.
getChangeChecking
());
}
return
dto
;
return
dto
;
}).
collect
(
Collectors
.
toList
());
}
}
}
}
yanxuan-qc-change-system-integration/src/main/java/com/netease/mail/yanxuan/change/integration/excel/ChangeConfigExcelDTO.java
View file @
22b650b7
...
@@ -4,7 +4,7 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
...
@@ -4,7 +4,7 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
import
lombok.Data
;
import
lombok.Data
;
/**
/**
* 变更配置导出DTO
* 变更配置导出DTO
(一层保持原样,二层为行动项:变更行动项部门、变更行动人、变更风险描述、行动项、变更验证措施)
*/
*/
@Data
@Data
public
class
ChangeConfigExcelDTO
{
public
class
ChangeConfigExcelDTO
{
...
@@ -44,5 +44,21 @@ public class ChangeConfigExcelDTO {
...
@@ -44,5 +44,21 @@ public class ChangeConfigExcelDTO {
@Excel
(
name
=
"更新时间"
)
@Excel
(
name
=
"更新时间"
)
private
String
updateTime
;
private
String
updateTime
;
/** 二层:变更行动项部门 */
@Excel
(
name
=
"变更行动项部门"
)
private
String
changeExecDepartment
;
/** 二层:变更行动人 */
@Excel
(
name
=
"变更行动人"
)
private
String
changeExecUser
;
/** 二层:变更风险描述 */
@Excel
(
name
=
"变更风险描述"
)
private
String
changeRiskDesc
;
/** 二层:行动项 */
@Excel
(
name
=
"行动项"
)
private
String
changeExecProject
;
/** 二层:变更验证措施 */
@Excel
(
name
=
"变更验证措施"
)
private
String
changeChecking
;
}
}
yanxuan-qc-change-system-integration/src/main/java/com/netease/mail/yanxuan/change/integration/excel/ChangeConfigExcelVo.java
View file @
22b650b7
...
@@ -10,7 +10,7 @@ import com.netease.mail.yanxuan.change.common.anno.ExcelTitleName;
...
@@ -10,7 +10,7 @@ import com.netease.mail.yanxuan.change.common.anno.ExcelTitleName;
import
lombok.Data
;
import
lombok.Data
;
/**
/**
* 变更配置导出VO
* 变更配置导出VO
(一层保持原样,二层新增:变更行动项部门、变更行动人、变更风险描述、行动项、变更验证措施)
*/
*/
@Data
@Data
public
class
ChangeConfigExcelVo
{
public
class
ChangeConfigExcelVo
{
...
@@ -50,6 +50,16 @@ public class ChangeConfigExcelVo {
...
@@ -50,6 +50,16 @@ public class ChangeConfigExcelVo {
@ExcelTitleName
(
title
=
"更新时间"
,
order
=
12
)
@ExcelTitleName
(
title
=
"更新时间"
,
order
=
12
)
private
String
updateTime
;
private
String
updateTime
;
@ExcelTitleName
(
title
=
"变更行动项部门"
,
order
=
13
)
private
String
changeExecDepartment
;
@ExcelTitleName
(
title
=
"变更行动人"
,
order
=
14
)
private
String
changeExecUser
;
@ExcelTitleName
(
title
=
"变更风险描述"
,
order
=
15
)
private
String
changeRiskDesc
;
@ExcelTitleName
(
title
=
"行动项"
,
order
=
16
)
private
String
changeExecProject
;
@ExcelTitleName
(
title
=
"变更验证措施"
,
order
=
17
)
private
String
changeChecking
;
public
static
List
<
ExcelCell
>
init
(
ChangeConfigExcelDTO
dto
)
{
public
static
List
<
ExcelCell
>
init
(
ChangeConfigExcelDTO
dto
)
{
List
<
ExcelCell
>
cells
=
new
ArrayList
<>();
List
<
ExcelCell
>
cells
=
new
ArrayList
<>();
...
@@ -115,6 +125,30 @@ public class ChangeConfigExcelVo {
...
@@ -115,6 +125,30 @@ public class ChangeConfigExcelVo {
excelCell
=
new
ExcelCell
();
excelCell
=
new
ExcelCell
();
excelCell
.
setValue
(
dto
.
getUpdateTime
()
!=
null
?
dto
.
getUpdateTime
()
:
""
);
excelCell
.
setValue
(
dto
.
getUpdateTime
()
!=
null
?
dto
.
getUpdateTime
()
:
""
);
cells
.
add
(
excelCell
);
cells
.
add
(
excelCell
);
// 13. 变更行动项部门
excelCell
=
new
ExcelCell
();
excelCell
.
setValue
(
dto
.
getChangeExecDepartment
()
!=
null
?
dto
.
getChangeExecDepartment
()
:
""
);
cells
.
add
(
excelCell
);
// 14. 变更行动人
excelCell
=
new
ExcelCell
();
excelCell
.
setValue
(
dto
.
getChangeExecUser
()
!=
null
?
dto
.
getChangeExecUser
()
:
""
);
cells
.
add
(
excelCell
);
// 15. 变更风险描述
excelCell
=
new
ExcelCell
();
excelCell
.
setValue
(
dto
.
getChangeRiskDesc
()
!=
null
?
dto
.
getChangeRiskDesc
()
:
""
);
cells
.
add
(
excelCell
);
// 16. 行动项
excelCell
=
new
ExcelCell
();
excelCell
.
setValue
(
dto
.
getChangeExecProject
()
!=
null
?
dto
.
getChangeExecProject
()
:
""
);
cells
.
add
(
excelCell
);
// 17. 变更验证措施
excelCell
=
new
ExcelCell
();
excelCell
.
setValue
(
dto
.
getChangeChecking
()
!=
null
?
dto
.
getChangeChecking
()
:
""
);
cells
.
add
(
excelCell
);
return
cells
;
return
cells
;
}
}
...
...
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