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
f93efe87
Commit
f93efe87
authored
Dec 12, 2025
by
王志超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 变更工单导出改造
parent
aea887e5
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
99 additions
and
2 deletions
+99
-2
ChangeFlowExportCallback.java
...yanxuan/change/biz/callback/ChangeFlowExportCallback.java
+39
-1
ChangeFlowExportQuery.java
...ail/yanxuan/change/biz/service/ChangeFlowExportQuery.java
+22
-0
ChangeFlowRequest.java
.../yanxuan/change/dal/meta/model/req/ChangeFlowRequest.java
+23
-0
ChangeFlowController.java
...l/yanxuan/change/web/controller/ChangeFlowController.java
+15
-1
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/callback/ChangeFlowExportCallback.java
View file @
f93efe87
...
...
@@ -14,6 +14,7 @@ import java.util.Map;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
com.netease.mail.yanxuan.change.biz.service.ChangeFlowExecService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
...
...
@@ -100,12 +101,28 @@ public class ChangeFlowExportCallback implements DesCallbackService {
@Autowired
private
SupplierService
supplierService
;
@Autowired
private
ChangeFlowExecService
changeFlowExecService
;
@Override
public
ExcelTitle
queryExcelTitle
(
CallbackQueryReq
req
)
{
log
.
info
(
"[op: change flow export callback queryExcelTitle] req={}"
,
JSON
.
toJSONString
(
req
));
ChangeFlowExportQuery
query
=
JSON
.
parseObject
(
req
.
getParamJson
(),
ChangeFlowExportQuery
.
class
);
ChangeFlowListQueryReq
changeFlowListQueryReq
=
new
ChangeFlowListQueryReq
();
BeanUtils
.
copyProperties
(
query
,
changeFlowListQueryReq
);
// 处理 changeExecUser 参数(与 query 方法保持一致)
if
(
StringUtils
.
isNotBlank
(
changeFlowListQueryReq
.
getChangeExecUser
()))
{
List
<
Long
>
recordIds
=
changeFlowExecService
.
queryByExecUser
(
changeFlowListQueryReq
.
getChangeExecUser
());
changeFlowListQueryReq
.
setChangeRecordIds
(
recordIds
);
log
.
info
(
"[queryExcelTitle] recordIds: {}"
,
recordIds
);
if
(
CollectionUtils
.
isEmpty
(
recordIds
))
{
ExcelTitle
excelTitle
=
ExcelUtil
.
fetchExceltile
(
ChangeFlowExcelVo
.
class
);
excelTitle
.
setTotal
(
0L
);
return
excelTitle
;
}
}
List
<
ChangeRecord
>
list
=
changeRecordMapper
.
selectByCondition
(
changeFlowListQueryReq
);
ExcelTitle
excelTitle
=
ExcelUtil
.
fetchExceltile
(
ChangeFlowExcelVo
.
class
);
excelTitle
.
setTotal
((
long
)
list
.
size
());
...
...
@@ -127,6 +144,17 @@ public class ChangeFlowExportCallback implements DesCallbackService {
private
List
<
ChangeFlowExcelDTO
>
getExportList
(
ChangeFlowExportQuery
query
)
{
ChangeFlowListQueryReq
changeFlowListQueryReq
=
new
ChangeFlowListQueryReq
();
BeanUtils
.
copyProperties
(
query
,
changeFlowListQueryReq
);
// 处理 changeExecUser 参数(与 query 方法保持一致)
if
(
StringUtils
.
isNotBlank
(
changeFlowListQueryReq
.
getChangeExecUser
()))
{
List
<
Long
>
recordIds
=
changeFlowExecService
.
queryByExecUser
(
changeFlowListQueryReq
.
getChangeExecUser
());
changeFlowListQueryReq
.
setChangeRecordIds
(
recordIds
);
log
.
info
(
"[getExportList] recordIds: {}"
,
recordIds
);
if
(
CollectionUtils
.
isEmpty
(
recordIds
))
{
return
Lists
.
newArrayList
();
}
}
List
<
ChangeRecord
>
changeRecords
=
changeRecordMapper
.
selectByConditionAndLimit
(
changeFlowListQueryReq
);
log
.
debug
(
"[getExportList] changeRecords:{}"
,
JSON
.
toJSONString
(
changeRecords
));
if
(
CollectionUtils
.
isEmpty
(
changeRecords
))
{
...
...
@@ -215,7 +243,17 @@ public class ChangeFlowExportCallback implements DesCallbackService {
Long
itemId
=
itemVO
.
getItemId
();
// 组装通用信息,除商品信息,行动项以外其他字段一致
ChangeFlowExcelDTO
changeFlowExcelDTO
=
this
.
obtainCommon
(
record
,
changeSubjectEnum
,
orgMap
);
changeFlowExcelDTO
.
setSupplier
(
"/"
);
String
changeSupplier
=
StringUtils
.
isBlank
(
record
.
getChangeSupplier
())
?
""
:
record
.
getChangeSupplier
();
String
changeSupplierName
=
""
;
if
(
StringUtils
.
isNotBlank
(
changeSupplier
))
{
List
<
SupplierSimpleRsp
>
supplierSimple
=
supplierService
.
getSupplierName
(
changeSupplier
);
if
(
CollectionUtils
.
isNotEmpty
(
supplierSimple
))
{
SupplierSimpleRsp
supplier
=
supplierSimple
.
get
(
0
);
changeSupplierName
=
supplier
.
getSupplierName
();
}
}
changeFlowExcelDTO
.
setSupplier
(
StringUtils
.
isBlank
(
changeSupplier
)
?
"/"
:
changeSupplier
+
changeSupplierName
);
changeFlowExcelDTO
.
setChangeItem
(
itemVO
.
getItemName
());
changeFlowExcelDTO
.
setSPUId
(
itemId
);
List
<
QcCategoryVO
>
qcCategoryList
=
qcService
.
getQcCategoryListByItemId
(
itemId
);
...
...
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/service/ChangeFlowExportQuery.java
View file @
f93efe87
...
...
@@ -22,6 +22,11 @@ public class ChangeFlowExportQuery {
private
String
itemId
;
/**
* 变更SKU
*/
private
String
skuId
;
/**
* 变更供应商(变更主体为供应商时有效)
*/
private
String
supplier
;
...
...
@@ -91,6 +96,23 @@ public class ChangeFlowExportQuery {
*/
private
Long
flowId
;
/**
* 变更执行人
*/
private
String
changeExecUser
;
/**
* 数据可见范围:仅查看我跟进的工单(默认true)
* true: 仅展示 "变更申请人/变更负责人/变更审批人=当前用户" 的变更工单
* false: 展示所有工单
*/
private
Boolean
onlyMyFollowed
;
/**
* 当前用户邮箱(用于数据可见范围过滤)
*/
private
String
currentUser
;
private
Long
limit
;
private
Long
offset
;
...
...
yanxuan-qc-change-system-dal/src/main/java/com/netease/mail/yanxuan/change/dal/meta/model/req/ChangeFlowRequest.java
View file @
f93efe87
...
...
@@ -22,6 +22,11 @@ public class ChangeFlowRequest {
private
String
itemId
;
/**
* 变更SKU
*/
private
String
skuId
;
/**
* 变更供应商(变更主体为供应商时有效)
*/
private
String
supplier
;
...
...
@@ -85,4 +90,21 @@ public class ChangeFlowRequest {
* 工单id
*/
private
Long
flowId
;
/**
* 变更执行人
*/
private
String
changeExecUser
;
/**
* 数据可见范围:仅查看我跟进的工单(默认true)
* true: 仅展示 "变更申请人/变更负责人/变更审批人=当前用户" 的变更工单
* false: 展示所有工单
*/
private
Boolean
onlyMyFollowed
;
/**
* 当前用户邮箱(用于数据可见范围过滤)
*/
private
String
currentUser
;
}
\ No newline at end of file
yanxuan-qc-change-system-web/src/main/java/com/netease/mail/yanxuan/change/web/controller/ChangeFlowController.java
View file @
f93efe87
...
...
@@ -200,6 +200,7 @@ public class ChangeFlowController {
*/
@GetMapping
(
"/export"
)
public
AjaxResult
<
String
>
export
(
@RequestParam
(
name
=
"itemId"
,
required
=
false
)
String
itemId
,
@RequestParam
(
name
=
"skuId"
,
required
=
false
)
String
skuId
,
@RequestParam
(
name
=
"supplier"
,
required
=
false
)
String
supplier
,
@RequestParam
(
name
=
"parentChangeClassId"
,
required
=
false
)
Long
parentChangeClassId
,
@RequestParam
(
name
=
"sonChangeClassId"
,
required
=
false
)
Long
sonChangeClassId
,
...
...
@@ -207,13 +208,16 @@ public class ChangeFlowController {
@RequestParam
(
name
=
"changeCommander"
,
required
=
false
)
String
changeCommander
,
@RequestParam
(
name
=
"changeDepartment"
,
required
=
false
)
String
changeDepartment
,
@RequestParam
(
name
=
"changeExecDepartment"
,
required
=
false
)
String
changeExecDepartment
,
@RequestParam
(
name
=
"changeExecUser"
,
required
=
false
)
String
changeExecUser
,
@RequestParam
(
name
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
name
=
"endTime"
,
required
=
false
)
Long
endTime
,
@RequestParam
(
name
=
"createSource"
,
required
=
false
,
defaultValue
=
"1"
)
Integer
createSource
,
@RequestParam
(
name
=
"serviceCode"
)
String
serviceCode
,
@RequestParam
(
name
=
"flowId"
,
required
=
false
)
Long
flowId
)
{
@RequestParam
(
name
=
"flowId"
,
required
=
false
)
Long
flowId
,
@RequestParam
(
name
=
"onlyMyFollowed"
,
defaultValue
=
"true"
)
Boolean
onlyMyFollowed
)
{
ChangeFlowRequest
changeFlowRequest
=
new
ChangeFlowRequest
();
changeFlowRequest
.
setItemId
(
itemId
);
changeFlowRequest
.
setSkuId
(
skuId
);
changeFlowRequest
.
setSupplier
(
supplier
);
changeFlowRequest
.
setParentChangeClassId
(
parentChangeClassId
);
changeFlowRequest
.
setSonChangeClassId
(
sonChangeClassId
);
...
...
@@ -221,10 +225,12 @@ public class ChangeFlowController {
changeFlowRequest
.
setChangeCommander
(
changeCommander
);
changeFlowRequest
.
setChangeDepartment
(
changeDepartment
);
changeFlowRequest
.
setChangeExecDepartment
(
changeExecDepartment
);
changeFlowRequest
.
setChangeExecUser
(
changeExecUser
);
changeFlowRequest
.
setStartTime
(
startTime
);
changeFlowRequest
.
setEndTime
(
endTime
);
changeFlowRequest
.
setServiceCode
(
serviceCode
);
changeFlowRequest
.
setFlowId
(
flowId
);
changeFlowRequest
.
setOnlyMyFollowed
(
onlyMyFollowed
);
// QC端/协同中心可以查看所有,不加入过滤条件
if
(
CreateSourceEnum
.
QC
.
getType
().
equals
(
createSource
)
||
CreateSourceEnum
.
COLLABORATION_CENTER
.
getType
().
equals
(
createSource
))
{
...
...
@@ -243,6 +249,14 @@ public class ChangeFlowController {
public
String
exportAddressBook
(
ChangeFlowRequest
req
)
{
req
.
setUid
(
RequestLocalBean
.
getUid
());
// 数据可见范围:仅查看我跟进的工单(默认true)
if
(
req
.
getOnlyMyFollowed
()
!=
null
&&
req
.
getOnlyMyFollowed
())
{
String
currentUser
=
RequestLocalBean
.
getUid
();
if
(
Strings
.
isNotBlank
(
currentUser
))
{
req
.
setCurrentUser
(
currentUser
);
log
.
info
(
"[export] 数据可见范围:仅查看我跟进的工单, currentUser:{}"
,
currentUser
);
}
}
return
desExportService
.
changeFlowExport
(
req
);
}
...
...
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