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
a849f6a1
Commit
a849f6a1
authored
Dec 21, 2022
by
“zcwang”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify:导出完善,查询循环外置
parent
a017b715
Pipeline
#44159
passed with stages
in 2 minutes 23 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
47 deletions
+47
-47
ChangeFlowExportCallback.java
...yanxuan/change/biz/callback/ChangeFlowExportCallback.java
+47
-47
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/callback/ChangeFlowExportCallback.java
View file @
a849f6a1
...
@@ -11,7 +11,6 @@ import java.util.Arrays;
...
@@ -11,7 +11,6 @@ import java.util.Arrays;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.Optional
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
...
@@ -122,33 +121,60 @@ public class ChangeFlowExportCallback implements DesCallbackService {
...
@@ -122,33 +121,60 @@ public class ChangeFlowExportCallback implements DesCallbackService {
if
(
CollectionUtils
.
isEmpty
(
changeRecords
))
{
if
(
CollectionUtils
.
isEmpty
(
changeRecords
))
{
return
Lists
.
newArrayList
();
return
Lists
.
newArrayList
();
}
}
// 提前查询所有行动项用户名
List
<
String
>
allExecUserEmailList
=
new
ArrayList
<>();
for
(
ChangeRecord
changeRecord
:
changeRecords
)
{
List
<
ChangeExecRecord
>
changeExecRecords
=
changeExecRecordMapper
.
selectByChangeRecordId
(
changeRecord
.
getId
());
List
<
String
>
collect
=
changeExecRecords
.
stream
()
.
map
(
ChangeExecRecord:
:
getChangeExecUserEmail
)
.
filter
(
StringUtils:
:
isNotBlank
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
collect
))
{
allExecUserEmailList
.
addAll
(
collect
);
}
}
List
<
IusUserInfoRsp
>
userListInfo
=
new
ArrayList
<>();
try
{
if
(
CollectionUtils
.
isNotEmpty
(
allExecUserEmailList
))
{
List
<
String
>
userEmailList
=
allExecUserEmailList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
userListInfo
=
iusService
.
queryUserListInfo
(
UserQueryDTO
.
builder
().
uids
(
userEmailList
).
build
());
}
}
catch
(
Exception
e
)
{
log
.
info
(
"query user info has ex"
,
e
);
}
// 提前查询所有商品
List
<
Long
>
allItemList
=
new
ArrayList
<>();
List
<
String
>
allChangeProduct
=
changeRecords
.
stream
()
.
filter
(
changeRecord
->
changeRecord
.
getChangeSubject
().
equals
(
ChangeSubjectEnum
.
PRODUCT
.
getType
()))
.
map
(
ChangeRecord:
:
getChangeItem
).
filter
(
StringUtils:
:
isNotBlank
).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
allChangeProduct
))
{
for
(
String
changeItemJsonStr
:
allChangeProduct
)
{
List
<
ItemVO
>
itemVOS
=
JSON
.
parseArray
(
changeItemJsonStr
,
ItemVO
.
class
);
List
<
Long
>
itemIds
=
itemVOS
.
stream
().
map
(
ItemVO:
:
getItemId
).
collect
(
Collectors
.
toList
());
allItemList
.
addAll
(
itemIds
);
}
}
if
(
CollectionUtils
.
isNotEmpty
(
allItemList
))
{
allItemList
=
allItemList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
}
// 批量查询spu信息
List
<
SpuTO
>
spuTOS
=
itemService
.
batchQuerySpuInfo
(
BatchQuerySpuInfoParam
.
builder
().
ids
(
allItemList
)
.
commonProps
(
new
ArrayList
<>()).
spuProps
(
Arrays
.
asList
(
"itemSetupType"
,
"businessForm"
)).
build
());
// 批量查询物理类目
Map
<
Long
,
List
<
SimplePhyCateGoryResultCo
>>
categoryChain
=
itemService
.
queryBySpuIds
(
CommonIdsParamQuery
.
builder
().
ids
(
allItemList
).
build
());
// 查询商品对应负责人信息
Map
<
Long
,
ChangeGoodsPrincipalPO
>
longChangeGoodsPrincipalPOMap
=
interiorChangeConfigService
.
queryGoodsPrincipalInfo
(
allItemList
);
log
.
debug
(
"[getExportList] spuTOS:{}"
,
spuTOS
.
size
());
List
<
ChangeFlowExcelDTO
>
changeFlowExcelDTOList
=
new
ArrayList
<>();
List
<
ChangeFlowExcelDTO
>
changeFlowExcelDTOList
=
new
ArrayList
<>();
// 导出excel,按照商品/供应商和行动项,n*n重复拆分,例2个商品3个行动项,拆分成2*3=6行,其他属性一致
// 导出excel,按照商品/供应商和行动项,n*n重复拆分,例2个商品3个行动项,拆分成2*3=6行,其他属性一致
for
(
ChangeRecord
record
:
changeRecords
)
{
for
(
ChangeRecord
record
:
changeRecords
)
{
List
<
ChangeExecRecord
>
changeExecRecords
=
changeExecRecordMapper
.
selectByChangeRecordId
(
record
.
getId
());
List
<
ChangeExecRecord
>
changeExecRecords
=
changeExecRecordMapper
.
selectByChangeRecordId
(
record
.
getId
());
List
<
IusUserInfoRsp
>
userListInfo
=
new
ArrayList
<>();
try
{
Set
<
String
>
userEmail
=
changeExecRecords
.
stream
().
map
(
ChangeExecRecord:
:
getChangeExecUserEmail
).
collect
(
Collectors
.
toSet
());
userListInfo
=
iusService
.
queryUserListInfo
(
UserQueryDTO
.
builder
().
uids
(
new
ArrayList
<>(
userEmail
)).
build
());
}
catch
(
Exception
ex
)
{
log
.
info
(
"query user info has ex"
,
ex
);
}
ChangeSubjectEnum
changeSubjectEnum
=
ChangeSubjectEnum
.
getChangeSubjectEnum
(
record
.
getChangeSubject
());
ChangeSubjectEnum
changeSubjectEnum
=
ChangeSubjectEnum
.
getChangeSubjectEnum
(
record
.
getChangeSubject
());
switch
(
changeSubjectEnum
)
{
switch
(
changeSubjectEnum
)
{
case
PRODUCT:
case
PRODUCT:
String
changeItemJsonStr
=
record
.
getChangeItem
();
String
changeItemJsonStr
=
record
.
getChangeItem
();
List
<
ItemVO
>
itemVOS
=
JSON
.
parseArray
(
changeItemJsonStr
,
ItemVO
.
class
);
List
<
ItemVO
>
itemVOS
=
JSON
.
parseArray
(
changeItemJsonStr
,
ItemVO
.
class
);
List
<
Long
>
itemIds
=
itemVOS
.
stream
().
map
(
ItemVO:
:
getItemId
).
collect
(
Collectors
.
toList
());
// 批量查询spu信息
List
<
SpuTO
>
spuTOS
=
itemService
.
batchQuerySpuInfo
(
BatchQuerySpuInfoParam
.
builder
().
ids
(
itemIds
)
.
commonProps
(
new
ArrayList
<>()).
spuProps
(
Arrays
.
asList
(
"itemSetupType"
,
"businessForm"
)).
build
());
// 批量查询物理类目
Map
<
Long
,
List
<
SimplePhyCateGoryResultCo
>>
categoryChain
=
itemService
.
queryBySpuIds
(
CommonIdsParamQuery
.
builder
().
ids
(
itemIds
).
build
());
// 查询商品对应负责人信息
Map
<
Long
,
ChangeGoodsPrincipalPO
>
longChangeGoodsPrincipalPOMap
=
interiorChangeConfigService
.
queryGoodsPrincipalInfo
(
itemIds
);
log
.
debug
(
"[detail] spuTOS:{}"
,
JSON
.
toJSONString
(
spuTOS
));
for
(
ItemVO
itemVO
:
itemVOS
)
{
for
(
ItemVO
itemVO
:
itemVOS
)
{
for
(
ChangeExecRecord
changeExecRecord
:
changeExecRecords
)
{
for
(
ChangeExecRecord
changeExecRecord
:
changeExecRecords
)
{
Long
itemId
=
itemVO
.
getItemId
();
Long
itemId
=
itemVO
.
getItemId
();
...
@@ -210,40 +236,13 @@ public class ChangeFlowExportCallback implements DesCallbackService {
...
@@ -210,40 +236,13 @@ public class ChangeFlowExportCallback implements DesCallbackService {
}
}
break
;
break
;
case
SUPPLIER:
case
SUPPLIER:
// 供应商变更,以行动项循环
for
(
ChangeExecRecord
changeExecRecord
:
changeExecRecords
)
{
// 组装通用信息,除商品信息,行动项以外其他字段一致
ChangeFlowExcelDTO
changeFlowExcelDTO
=
this
.
obtainCommon
(
record
,
changeSubjectEnum
);
changeFlowExcelDTO
.
setSupplier
(
record
.
getChangeSupplier
());
changeFlowExcelDTO
.
setChangeItem
(
null
);
changeFlowExcelDTO
.
setSPUId
(
null
);
changeFlowExcelDTO
.
setQcCategory
(
null
);
changeFlowExcelDTO
.
setPhyCategory
(
null
);
changeFlowExcelDTO
.
setItemSetupType
(
null
);
changeFlowExcelDTO
.
setBusinessForm
(
null
);
changeFlowExcelDTO
.
setStatus
(
null
);
changeFlowExcelDTO
.
setFunctionary
(
null
);
changeFlowExcelDTO
.
setPurchase
(
null
);
changeFlowExcelDTO
.
setGoodsSqe
(
null
);
changeFlowExcelDTO
.
setGoodsProjectName
(
null
);
// 组装行动项相关信息
this
.
obtainChangeExec
(
changeExecRecord
,
changeFlowExcelDTO
,
userListInfo
);
ChangeResultEnum
resultEnum
=
ChangeResultEnum
.
getByStatus
(
record
.
getChangeResult
());
changeFlowExcelDTO
.
setChangeResult
(
resultEnum
==
null
?
""
:
resultEnum
.
getDesc
());
changeFlowExcelDTO
.
setChangeEndTime
(
record
.
getState
().
equals
(
ChangeStatusEnum
.
END
.
getStatus
())
?
DateUtils
.
parseLongToString
(
record
.
getUpdateTime
(),
DateUtils
.
DATE_TIME_FORMAT
)
:
""
);
changeFlowExcelDTOList
.
add
(
changeFlowExcelDTO
);
}
break
;
case
OTHER:
case
OTHER:
default
:
default
:
// 供应商变更,以行动项循环
// 供应商变更,以行动项循环
for
(
ChangeExecRecord
changeExecRecord
:
changeExecRecords
)
{
for
(
ChangeExecRecord
changeExecRecord
:
changeExecRecords
)
{
// 组装通用信息,除商品信息,行动项以外其他字段一致
// 组装通用信息,除商品信息,行动项以外其他字段一致
ChangeFlowExcelDTO
changeFlowExcelDTO
=
this
.
obtainCommon
(
record
,
changeSubjectEnum
);
ChangeFlowExcelDTO
changeFlowExcelDTO
=
this
.
obtainCommon
(
record
,
changeSubjectEnum
);
changeFlowExcelDTO
.
setSupplier
(
null
);
changeFlowExcelDTO
.
setSupplier
(
record
.
getChangeSupplier
()
);
changeFlowExcelDTO
.
setChangeItem
(
null
);
changeFlowExcelDTO
.
setChangeItem
(
null
);
changeFlowExcelDTO
.
setSPUId
(
null
);
changeFlowExcelDTO
.
setSPUId
(
null
);
changeFlowExcelDTO
.
setQcCategory
(
null
);
changeFlowExcelDTO
.
setQcCategory
(
null
);
...
@@ -265,6 +264,7 @@ public class ChangeFlowExportCallback implements DesCallbackService {
...
@@ -265,6 +264,7 @@ public class ChangeFlowExportCallback implements DesCallbackService {
:
""
);
:
""
);
changeFlowExcelDTOList
.
add
(
changeFlowExcelDTO
);
changeFlowExcelDTOList
.
add
(
changeFlowExcelDTO
);
}
}
break
;
}
}
}
}
...
...
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