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
6ee6ec9f
Commit
6ee6ec9f
authored
Nov 25, 2025
by
王志超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 根据商品查询供应商并集
parent
2ee5b1c1
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
167 additions
and
10 deletions
+167
-10
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+0
-2
FlowRpcSupplierInfoService.java
...integration/flow/supplier/FlowRpcSupplierInfoService.java
+7
-3
FlowRpcSupplierInfoServiceImpl.java
...on/flow/supplier/impl/FlowRpcSupplierInfoServiceImpl.java
+31
-0
ItemSupplierRsp.java
...change/integration/flow/supplier/rsp/ItemSupplierRsp.java
+48
-0
SupplierRpcService.java
...nxuan/change/integration/supplier/SupplierRpcService.java
+30
-0
SupplierController.java
...ail/yanxuan/change/web/controller/SupplierController.java
+51
-5
No files found.
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
6ee6ec9f
...
...
@@ -249,8 +249,6 @@ public class ChangeFlowBiz {
List
<
ChangeExecConfigReq
>
changeExecProject
=
changeFlowCreateReq
.
getChangeExecProject
();
Assert
.
isTrue
(
changeExecProject
.
size
()
<=
appConfig
.
getChangeExecLimit
(),
"变更行动方案配置数超限"
);
// 校验变更行动方案中是否有重复的变更行动人
validateDuplicateChangeExecUser
(
changeExecProject
);
// 结束时间不可晚于第二天定时任务执行时间
Long
tomorrowSpecificTime
=
DateUtils
.
getTomorrowSpecificTime
(
"00:00:00"
);
if
(
changeFlowCreateReq
.
getCreateSource
()
!=
2
)
{
...
...
yanxuan-qc-change-system-integration/src/main/java/com/netease/mail/yanxuan/change/integration/flow/supplier/FlowRpcSupplierInfoService.java
View file @
6ee6ec9f
package
com
.
netease
.
mail
.
yanxuan
.
change
.
integration
.
flow
.
supplier
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.req.SupplierRelatedUserReq
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.ItemSupplierRsp
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.SupplierUserRsp
;
import
com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse
;
import
java.util.List
;
/**
...
...
@@ -16,7 +16,11 @@ public interface FlowRpcSupplierInfoService {
*/
List
<
SupplierUserRsp
>
querySupplierRelatedUser
(
SupplierRelatedUserReq
req
);
/**
* 根据商品Id列表查询供应商
* @param itemIds 商品Id列表
* @return 供应商信息列表
*/
List
<
ItemSupplierRsp
>
querySupplierByItemIds
(
List
<
Long
>
itemIds
);
}
yanxuan-qc-change-system-integration/src/main/java/com/netease/mail/yanxuan/change/integration/flow/supplier/impl/FlowRpcSupplierInfoServiceImpl.java
View file @
6ee6ec9f
package
com
.
netease
.
mail
.
yanxuan
.
change
.
integration
.
flow
.
supplier
.
impl
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -11,9 +13,12 @@ import org.springframework.stereotype.Service;
import
com.alibaba.fastjson.JSON
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplierInfoService
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.req.SupplierRelatedUserReq
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.ItemSupplierRsp
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.SupplierUserRsp
;
import
com.netease.mail.yanxuan.change.integration.rpc.RpcListData
;
import
com.netease.mail.yanxuan.change.integration.rpc.RpcTemplate
;
import
com.netease.mail.yanxuan.change.integration.supplier.SupplierRpcService
;
import
com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse
;
/**
* @author WangJiaXiang
...
...
@@ -27,6 +32,9 @@ public class FlowRpcSupplierInfoServiceImpl implements FlowRpcSupplierInfoServic
@Autowired
private
RpcTemplate
rpcTemplate
;
@Autowired
private
SupplierRpcService
supplierRpcService
;
@Value
(
"${supplier.url}"
)
private
String
supplierUrl
;
...
...
@@ -45,4 +53,27 @@ public class FlowRpcSupplierInfoServiceImpl implements FlowRpcSupplierInfoServic
}
return
objects
;
}
@Override
public
List
<
ItemSupplierRsp
>
querySupplierByItemIds
(
List
<
Long
>
itemIds
)
{
if
(
CollectionUtils
.
isEmpty
(
itemIds
))
{
return
new
ArrayList
<>();
}
try
{
// 调用底层SupplierRpcService查询供应商信息
AjaxResponse
<
List
<
ItemSupplierRsp
>>
response
=
supplierRpcService
.
querySupplierByItemIds
(
itemIds
);
logger
.
info
(
"[querySupplierByItemIds] querySupplierByItemIds response: {}"
,
JSON
.
toJSONString
(
response
));
if
(
response
==
null
||
CollectionUtils
.
isEmpty
(
response
.
getData
()))
{
return
new
ArrayList
<>();
}
return
response
.
getData
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"[querySupplierByItemIds] query supplier failed, itemIds={}"
,
JSON
.
toJSONString
(
itemIds
),
e
);
return
new
ArrayList
<>();
}
}
}
yanxuan-qc-change-system-integration/src/main/java/com/netease/mail/yanxuan/change/integration/flow/supplier/rsp/ItemSupplierRsp.java
0 → 100644
View file @
6ee6ec9f
package
com
.
netease
.
mail
.
yanxuan
.
change
.
integration
.
flow
.
supplier
.
rsp
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* 商品关联供应商响应对象
*
* @author generated
* @date 2024/01/01
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
ItemSupplierRsp
{
/**
* 商品id
*/
private
Long
itemId
;
/**
* 供应商ID
*/
private
String
supplierId
;
/**
* 供应商名称
*/
private
String
supplierName
;
/**
* 供应商的跟进采购Uid
*/
private
String
supplierTraceBusiness
;
/**
* 供应商的跟进采购姓名
*/
private
String
supplierTraceBusinessName
;
/**
* 质检报告id
*/
private
Long
qcReportId
;
}
yanxuan-qc-change-system-integration/src/main/java/com/netease/mail/yanxuan/change/integration/supplier/SupplierRpcService.java
0 → 100644
View file @
6ee6ec9f
package
com
.
netease
.
mail
.
yanxuan
.
change
.
integration
.
supplier
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.ItemSupplierRsp
;
import
com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse
;
import
com.netease.yanxuan.missa.client.annotation.MissaClient
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
java.util.List
;
/**
* 供应商RPC服务
*
* @author generated
* @date 2024/01/01
*/
@Service
@MissaClient
(
serviceCode
=
"yanxuan-supplier-ms"
)
public
interface
SupplierRpcService
{
/**
* 根据商品Id列表查询供应商
* @param itemIds 商品Id列表
* @return 供应商信息列表
*/
@PostMapping
(
"/api/initiateProject/source/getBatchRelatedSupplier.json"
)
AjaxResponse
<
List
<
ItemSupplierRsp
>>
querySupplierByItemIds
(
@RequestBody
List
<
Long
>
itemIds
);
}
yanxuan-qc-change-system-web/src/main/java/com/netease/mail/yanxuan/change/web/controller/SupplierController.java
View file @
6ee6ec9f
package
com
.
netease
.
mail
.
yanxuan
.
change
.
web
.
controller
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
...
@@ -13,10 +18,12 @@ import com.netease.mail.yanxuan.change.biz.config.AppConfig;
import
com.netease.mail.yanxuan.change.biz.service.ISupplierItemService
;
import
com.netease.mail.yanxuan.change.common.bean.AjaxResult
;
import
com.netease.mail.yanxuan.change.common.bean.ResponseCodeEnum
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplierInfoService
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplierSendService
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplierService
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.req.SupplierGoodsInfoReq
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.req.SupplierSearchRemoteReq
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.ItemSupplierRsp
;
import
com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.SupplierSimpleRsp
;
import
com.netease.mail.yanxuan.change.integration.todo.SupplierItemPageVO
;
import
com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse
;
...
...
@@ -42,6 +49,9 @@ public class SupplierController {
private
FlowRpcSupplierSendService
supplierSendService
;
@Autowired
private
FlowRpcSupplierInfoService
flowRpcSupplierInfoService
;
@Autowired
private
AppConfig
appConfig
;
@GetMapping
(
"/query/supplier/infos"
)
...
...
@@ -73,16 +83,52 @@ public class SupplierController {
/**
* 根据商品Id列表查询供应商
* TODO: 三方接口还未提供,待实现
*
* @param itemIds 商品Id列表(可通过多个同名参数传递,如:?itemId=1&itemId=2&itemId=3)
* @return 供应商信息列表
* @return 供应商信息列表
(去重后)
*/
@GetMapping
(
"/query/supplier/by/item/ids"
)
public
AjaxResult
<
List
<
SupplierSimpleRsp
>>
querySupplierByItemIds
(
@RequestParam
(
name
=
"itemId"
)
List
<
Long
>
itemIds
)
{
// TODO: 待三方接口提供后实现
log
.
warn
(
"[querySupplierByItemIds] 三方接口还未提供,itemIds={}"
,
JSON
.
toJSONString
(
itemIds
));
return
AjaxResult
.
badRequest
(
"三方接口还未提供,待实现"
);
// 获取元数据
List
<
ItemSupplierRsp
>
itemSupplierList
=
flowRpcSupplierInfoService
.
querySupplierByItemIds
(
itemIds
);
// 打印元数据日志
log
.
info
(
"[querySupplierByItemIds] 元数据 itemIds={}, itemSupplierList={}"
,
JSON
.
toJSONString
(
itemIds
),
JSON
.
toJSONString
(
itemSupplierList
));
if
(
CollectionUtils
.
isEmpty
(
itemSupplierList
))
{
return
AjaxResult
.
success
(
new
ArrayList
<>());
}
// 从响应中提取供应商信息,并去重(按supplierId去重)
Set
<
String
>
supplierIdSet
=
new
HashSet
<>();
List
<
SupplierSimpleRsp
>
supplierList
=
new
ArrayList
<>();
for
(
ItemSupplierRsp
itemSupplier
:
itemSupplierList
)
{
String
supplierId
=
itemSupplier
.
getSupplierId
();
String
supplierName
=
itemSupplier
.
getSupplierName
();
// 如果供应商ID为空,跳过
if
(
StringUtils
.
isBlank
(
supplierId
))
{
continue
;
}
// 去重:如果该供应商ID已经处理过,跳过
if
(
supplierIdSet
.
contains
(
supplierId
))
{
continue
;
}
supplierIdSet
.
add
(
supplierId
);
// 构建供应商信息
SupplierSimpleRsp
supplier
=
new
SupplierSimpleRsp
();
supplier
.
setSupplierId
(
supplierId
);
supplier
.
setSupplierName
(
StringUtils
.
isNotBlank
(
supplierName
)
?
supplierName
:
supplierId
);
supplierList
.
add
(
supplier
);
}
log
.
info
(
"[querySupplierByItemIds] itemIds={}, supplierCount={}"
,
JSON
.
toJSONString
(
itemIds
),
supplierList
.
size
());
return
AjaxResult
.
success
(
supplierList
);
}
}
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