Commit 6061b635 by 胡园园

Merge branch 'hotfix-20230106-product' into 'master'

分支hotfix-20230106-product已上线,自动合并到master

See merge request !9
parents 038e4fce f519ca8a
Pipeline #44716 canceled with stages
...@@ -22,6 +22,7 @@ import com.netease.mail.yanxuan.change.biz.config.AppConfig; ...@@ -22,6 +22,7 @@ import com.netease.mail.yanxuan.change.biz.config.AppConfig;
import com.netease.mail.yanxuan.change.biz.meta.exception.ExceptionFactory; import com.netease.mail.yanxuan.change.biz.meta.exception.ExceptionFactory;
import com.netease.mail.yanxuan.change.biz.service.InteriorChangeConfigService; import com.netease.mail.yanxuan.change.biz.service.InteriorChangeConfigService;
import com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService; import com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService;
import com.netease.mail.yanxuan.change.biz.service.rpc.ItemcenterRpcService;
import com.netease.mail.yanxuan.change.common.bean.ResponseCode; import com.netease.mail.yanxuan.change.common.bean.ResponseCode;
import com.netease.mail.yanxuan.change.common.enums.ChangeCommanderEnum; import com.netease.mail.yanxuan.change.common.enums.ChangeCommanderEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangePrincipalEnum; import com.netease.mail.yanxuan.change.common.enums.ChangePrincipalEnum;
...@@ -37,6 +38,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsPurchaseRpc; ...@@ -37,6 +38,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsPurchaseRpc;
import com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsResponseRpc; import com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsResponseRpc;
import com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsResponseSqeRpc; import com.netease.mail.yanxuan.change.dal.meta.model.rpc.GoodsResponseSqeRpc;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemVO; import com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemVO;
import com.netease.mail.yanxuan.change.integration.flow.goods.ItemManagerTO;
import com.netease.mail.yanxuan.change.integration.flow.goods.ItemcenterApiRpcService; import com.netease.mail.yanxuan.change.integration.flow.goods.ItemcenterApiRpcService;
import com.netease.mail.yanxuan.change.integration.flow.goods.PfuApiRpcService; import com.netease.mail.yanxuan.change.integration.flow.goods.PfuApiRpcService;
import com.netease.mail.yanxuan.change.integration.flow.goods.QcApiRpcService; import com.netease.mail.yanxuan.change.integration.flow.goods.QcApiRpcService;
...@@ -63,12 +65,15 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -63,12 +65,15 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
//查询商品的SQE //查询商品的SQE
@Autowired @Autowired
private QcApiRpcService qcApiRpcService; private QcApiRpcService qcApiRpcService;
//查看执行人 //查看执行人
@Autowired @Autowired
private PfuApiRpcService pfuApiRpcService; private PfuApiRpcService pfuApiRpcService;
//查看商品BU //查看商品BU
@Autowired @Autowired
private ItemcenterApiRpcService itemcenterApiRpcService; private ItemcenterApiRpcService itemcenterApiRpcService;
@Autowired @Autowired
private FlowRpcSupplierSendService supplierSendService; private FlowRpcSupplierSendService supplierSendService;
...@@ -81,8 +86,11 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -81,8 +86,11 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
@Autowired @Autowired
private FlowRpcSupplierInfoService supplierInfoService; private FlowRpcSupplierInfoService supplierInfoService;
@Autowired
private ItemcenterRpcService itemcenterRpcService;
/** /**
* 接口不完整,关于商品的查询已经完成 供应商查询不完整接口已对接 具体返回值接口测试未完成 * 接口不完整,关于商品的查询已经完成 供应商查询不完整接口已对接 具体返回值接口测试未完成
* *
* @param changeCommander * @param changeCommander
* @return * @return
...@@ -97,7 +105,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -97,7 +105,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
return null; return null;
} }
//查询出当前模板配置中选择的 角色 //查询出当前模板配置中选择的 角色
ChangeCommanderEnum changeCommanderEnum = ChangeCommanderEnum.getChangeCommanderEnum(changeConfig.getChangeCommanderType()); ChangeCommanderEnum changeCommanderEnum = ChangeCommanderEnum
.getChangeCommanderEnum(changeConfig.getChangeCommanderType());
if (changeCommanderEnum == null) { if (changeCommanderEnum == null) {
return null; return null;
} }
...@@ -107,7 +116,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -107,7 +116,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
// 如果是同舟端,发起人以商品开发兜底 // 如果是同舟端,发起人以商品开发兜底
if (changeCommander.getCreateSource().equals(CreateSourceEnum.TONG_ZHOU.getType())) { if (changeCommander.getCreateSource().equals(CreateSourceEnum.TONG_ZHOU.getType())) {
return queryChangeSupplier(ChangeCommanderEnum.SUPPLIERS_ASSOCIATED, changeCommander.getSupplier(), return queryChangeSupplier(ChangeCommanderEnum.SUPPLIERS_ASSOCIATED, changeCommander.getSupplier(),
SupplierChangePrincipalEnum.GOODS_BU.getName()); SupplierChangePrincipalEnum.GOODS_BU.getName());
} }
rpc.setEmail(changeCommander.getFlowCreator()); rpc.setEmail(changeCommander.getFlowCreator());
return rpc; return rpc;
...@@ -119,10 +128,12 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -119,10 +128,12 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
} }
if (Objects.equals(ChangeSubjectEnum.PRODUCT.getType(), changeConfig.getChangeSubject())) { if (Objects.equals(ChangeSubjectEnum.PRODUCT.getType(), changeConfig.getChangeSubject())) {
//商品变更 //商品变更
return queryGoodsCommander(changeCommanderEnum, changeCommander.getGoodsInfos(), changeConfig.getChangeCommander()); return queryGoodsCommander(changeCommanderEnum, changeCommander.getGoodsInfos(),
changeConfig.getChangeCommander());
} else if (Objects.equals(ChangeSubjectEnum.SUPPLIER.getType(), changeConfig.getChangeSubject())) { } else if (Objects.equals(ChangeSubjectEnum.SUPPLIER.getType(), changeConfig.getChangeSubject())) {
//供应商 采购 计划 SQE //供应商 采购 计划 SQE
return queryChangeSupplier(changeCommanderEnum, changeCommander.getChangeSupplierId(), changeConfig.getChangeCommander()); return queryChangeSupplier(changeCommanderEnum, changeCommander.getChangeSupplierId(),
changeConfig.getChangeCommander());
} }
//其他变更 备注 其他变更之后固定人 和发起人在上面判断会被排除掉 changeConfig.getChangeCommander(); //其他变更 备注 其他变更之后固定人 和发起人在上面判断会被排除掉 changeConfig.getChangeCommander();
return null; return null;
...@@ -131,14 +142,18 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -131,14 +142,18 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
/** /**
* 商品的最终角色查询 * 商品的最终角色查询
* *
* @param commanderEnum 查询方向 枚举 * @param commanderEnum
* @param goodsInfos 商品的列表 * 查询方向 枚举
* @param commander 商品的关联角色 ChangeCommanderEnum * @param goodsInfos
* 商品的列表
* @param commander
* 商品的关联角色 ChangeCommanderEnum
* @return * @return
*/ */
private GoodsResponseRpc queryGoodsCommander(ChangeCommanderEnum commanderEnum, List<Long> goodsInfos, String commander) { private GoodsResponseRpc queryGoodsCommander(ChangeCommanderEnum commanderEnum, List<Long> goodsInfos,
String commander) {
if (!commanderEnum.getId().equals(ChangeCommanderEnum.GOODS_ASSOCIATED.getId()) if (!commanderEnum.getId().equals(ChangeCommanderEnum.GOODS_ASSOCIATED.getId())
|| CollectionUtils.isEmpty(goodsInfos) || commander == null) { || CollectionUtils.isEmpty(goodsInfos) || commander == null) {
return null; return null;
} }
Map<String, GoodsResponseRpc> map = new HashMap<String, GoodsResponseRpc>(); Map<String, GoodsResponseRpc> map = new HashMap<String, GoodsResponseRpc>();
...@@ -151,17 +166,18 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -151,17 +166,18 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
//遍历取出所有商品关联的人 //遍历取出所有商品关联的人
if (ChangePrincipalEnum.GOODS_BU.getName().equals(commander)) { if (ChangePrincipalEnum.GOODS_BU.getName().equals(commander)) {
String detail = itemcenterApiRpcService.getDetail(goodsInfos); List<ItemManagerTO> product = itemcenterRpcService.getProduct(goodsInfos);
logger.info("[queryGoodsCommander] goods_bu:{}", detail); logger.info("[queryGoodsCommander] goods_bu:{}", JSON.toJSONString(product));
getGoodsNameEmail(emails, detail); getGoodsEmail(emails, product);
} else if (ChangePrincipalEnum.PURCHASE.getName().equals(commander)) { } else if (ChangePrincipalEnum.PURCHASE.getName().equals(commander)) {
//采购返回值处理逻辑 //采购返回值处理逻辑
String detail = supplierSendService.queryGoodsPurchase(goodsInfos); String detail = supplierSendService.queryGoodsPurchase(goodsInfos);
logger.info("[queryGoodsCommander] purchase:{}", detail); logger.info("[queryGoodsCommander] purchase:{}", detail);
JSONObject jsonObject = JSONObject.parseObject(detail); JSONObject jsonObject = JSONObject.parseObject(detail);
List<GoodsPurchaseRpc> purchaseRpcs = JSONObject.parseArray(jsonObject.get("data").toString(), GoodsPurchaseRpc.class); List<GoodsPurchaseRpc> purchaseRpcs = JSONObject.parseArray(jsonObject.get("data").toString(),
for (GoodsPurchaseRpc purchaseRpc : purchaseRpcs) { GoodsPurchaseRpc.class);
for (GoodsPurchaseRpc purchaseRpc: purchaseRpcs) {
GoodsResponseRpc goodsRpc = new GoodsResponseRpc(); GoodsResponseRpc goodsRpc = new GoodsResponseRpc();
goodsRpc.setEmail(purchaseRpc.getSupplierTraceBusiness()); goodsRpc.setEmail(purchaseRpc.getSupplierTraceBusiness());
goodsRpc.setName(purchaseRpc.getSupplierTraceBusinessName()); goodsRpc.setName(purchaseRpc.getSupplierTraceBusinessName());
...@@ -172,7 +188,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -172,7 +188,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
logger.info("[queryGoodsCommander] prospectus:{}", detail); logger.info("[queryGoodsCommander] prospectus:{}", detail);
getGoodsNameEmail(emails, detail); getGoodsNameEmail(emails, detail);
} else if (ChangePrincipalEnum.SQE.getName().equals(commander)) { } else if (ChangePrincipalEnum.SQE.getName().equals(commander)) {
for (Long goods : goodsInfos) { for (Long goods: goodsInfos) {
String detail = qcApiRpcService.getDetail(goods.intValue()); String detail = qcApiRpcService.getDetail(goods.intValue());
logger.info("[queryGoodsCommander] SQE:{}", detail); logger.info("[queryGoodsCommander] SQE:{}", detail);
JSONObject jsonObject = JSONObject.parseObject(detail); JSONObject jsonObject = JSONObject.parseObject(detail);
...@@ -187,7 +203,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -187,7 +203,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
} }
} }
//逻辑发生变更 //逻辑发生变更
for (GoodsResponseRpc email : emails) { for (GoodsResponseRpc email: emails) {
if (!map.containsKey(email.getName())) { if (!map.containsKey(email.getName())) {
email.setOccurrenceNumber(1); email.setOccurrenceNumber(1);
} else { } else {
...@@ -207,18 +223,22 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -207,18 +223,22 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
return name; return name;
} }
/** /**
* 供应商角色最终查询 * 供应商角色最终查询
* *
* @param commanderEnum 查询方向 枚举 * @param commanderEnum
* @param changeSupplierId 供应商信息 * 查询方向 枚举
* @param commander 供应商关联角色 * @param changeSupplierId
* 供应商信息
* @param commander
* 供应商关联角色
* @return * @return
*/ */
private GoodsResponseRpc queryChangeSupplier(ChangeCommanderEnum commanderEnum, String changeSupplierId, String commander) { private GoodsResponseRpc queryChangeSupplier(ChangeCommanderEnum commanderEnum, String changeSupplierId,
String commander) {
GoodsResponseRpc rpc = new GoodsResponseRpc(); GoodsResponseRpc rpc = new GoodsResponseRpc();
if (!commanderEnum.getId().equals(ChangeCommanderEnum.SUPPLIERS_ASSOCIATED.getId()) || changeSupplierId == null || commander == null) { if (!commanderEnum.getId().equals(ChangeCommanderEnum.SUPPLIERS_ASSOCIATED.getId()) || changeSupplierId == null
|| commander == null) {
return null; return null;
} }
SupplierRelatedUserReq req = new SupplierRelatedUserReq(); SupplierRelatedUserReq req = new SupplierRelatedUserReq();
...@@ -235,8 +255,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -235,8 +255,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
req.setSearchType(SupplierChangePrincipalEnum.GOODS_BU.getType()); req.setSearchType(SupplierChangePrincipalEnum.GOODS_BU.getType());
} else { } else {
throw ExceptionFactory.createBiz(ResponseCode.BAD_REQUEST, "供应商角色类型错误"); throw ExceptionFactory.createBiz(ResponseCode.BAD_REQUEST, "供应商角色类型错误");
} }
req.setSupplierIdList(supplierIdList); req.setSupplierIdList(supplierIdList);
//进行参数解析 //进行参数解析
List<SupplierUserRsp> listAjaxResponse = supplierInfoService.querySupplierRelatedUser(req); List<SupplierUserRsp> listAjaxResponse = supplierInfoService.querySupplierRelatedUser(req);
...@@ -245,19 +265,20 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -245,19 +265,20 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
} }
SupplierUserRsp supplierUserRsp = listAjaxResponse.get(0); SupplierUserRsp supplierUserRsp = listAjaxResponse.get(0);
Map<String, String> uid2NameMap = supplierUserRsp.getUid2NameMap(); Map<String, String> uid2NameMap = supplierUserRsp.getUid2NameMap();
for (String key : uid2NameMap.keySet()) { for (String key: uid2NameMap.keySet()) {
rpc.setName(uid2NameMap.get(key)); rpc.setName(uid2NameMap.get(key));
rpc.setEmail(key); rpc.setEmail(key);
} }
return rpc; return rpc;
} }
/** /**
* 重复代码复用方法 * 重复代码复用方法
* *
* @param emails 储存邮箱队列 * @param emails
* @param response 请求返结果 * 储存邮箱队列
* @param response
* 请求返结果
*/ */
private void getGoodsNameEmail(List<GoodsResponseRpc> emails, String response) { private void getGoodsNameEmail(List<GoodsResponseRpc> emails, String response) {
JSONObject jsonObject = JSONObject.parseObject(response); JSONObject jsonObject = JSONObject.parseObject(response);
...@@ -265,7 +286,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -265,7 +286,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
if (rpcMap == null) { if (rpcMap == null) {
throw ExceptionFactory.createBiz(ResponseCode.OPERATOR_NOT_EXIST); throw ExceptionFactory.createBiz(ResponseCode.OPERATOR_NOT_EXIST);
} }
for (String rpc : rpcMap.keySet()) { for (String rpc: rpcMap.keySet()) {
GoodsResponseRpc goodsRpc = new GoodsResponseRpc(); GoodsResponseRpc goodsRpc = new GoodsResponseRpc();
goodsRpc.setEmail(rpcMap.get(rpc).get("uid").toString()); goodsRpc.setEmail(rpcMap.get(rpc).get("uid").toString());
goodsRpc.setName(rpcMap.get(rpc).get("name").toString()); goodsRpc.setName(rpcMap.get(rpc).get("name").toString());
...@@ -273,6 +294,20 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -273,6 +294,20 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
} }
} }
/**
* 获取商品负责人信息
*
* @param emails
*/
private void getGoodsEmail(List<GoodsResponseRpc> emails, List<ItemManagerTO> itemManagerTOS) {
for (ItemManagerTO itemManagerTO: itemManagerTOS) {
GoodsResponseRpc goodsRpc = new GoodsResponseRpc();
goodsRpc.setEmail(itemManagerTO.getUid());
goodsRpc.setName(itemManagerTO.getName());
emails.add(goodsRpc);
}
}
@Override @Override
public Map<Long, ChangeGoodsPrincipalPO> queryGoodsPrincipalInfo(List<Long> itemIds) { public Map<Long, ChangeGoodsPrincipalPO> queryGoodsPrincipalInfo(List<Long> itemIds) {
Map<Long, ChangeGoodsPrincipalPO> map = new HashMap<>(); Map<Long, ChangeGoodsPrincipalPO> map = new HashMap<>();
...@@ -280,9 +315,9 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -280,9 +315,9 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
map.put(itemId, new ChangeGoodsPrincipalPO()); map.put(itemId, new ChangeGoodsPrincipalPO());
} }
//商品BU //商品BU
String functionary = itemcenterApiRpcService.getDetail(itemIds); List<ItemManagerTO> product = itemcenterRpcService.getProduct(itemIds);
logger.info("[queryGoodsPrincipalInfo] functionary:{}", functionary); logger.info("[queryGoodsPrincipalInfo] product:{}", product);
getGoodsPrincipalNameEmail(ChangePrincipalEnum.GOODS_BU.getType(), map, functionary); getGoodsPrincipalNameEmailV2(map, product);
//计划 //计划
String project = pfuApiRpcService.getDetail(itemIds); String project = pfuApiRpcService.getDetail(itemIds);
logger.info("[queryGoodsPrincipalInfo] project:{}", project); logger.info("[queryGoodsPrincipalInfo] project:{}", project);
...@@ -327,14 +362,14 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -327,14 +362,14 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
try { try {
GoodsResponseRpc goodsResponseRpc = queryChangeSupplier( GoodsResponseRpc goodsResponseRpc = queryChangeSupplier(
ChangeCommanderEnum.SUPPLIERS_ASSOCIATED, req.getChangeSupplier(), ChangeCommanderEnum.SUPPLIERS_ASSOCIATED, req.getChangeSupplier(),
SupplierChangePrincipalEnum.GOODS_BU.getName()); SupplierChangePrincipalEnum.GOODS_BU.getName());
commanderResponse.setName(goodsResponseRpc.getName()); commanderResponse.setName(goodsResponseRpc.getName());
commanderResponse.setEmail(goodsResponseRpc.getEmail()); commanderResponse.setEmail(goodsResponseRpc.getEmail());
} catch (Exception e) { } catch (Exception e) {
log.error("[queryCommanderEmail] goodsResponseRpc error,e{}", e); log.error("[queryCommanderEmail] goodsResponseRpc error,e{}", e);
} }
return commanderResponse; return commanderResponse;
}else { } else {
return null; return null;
} }
case FIXED_PERSON: case FIXED_PERSON:
...@@ -346,7 +381,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -346,7 +381,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
List<Long> itemIdList = itemVOS.stream().map(ItemVO::getItemId).collect(Collectors.toList()); List<Long> itemIdList = itemVOS.stream().map(ItemVO::getItemId).collect(Collectors.toList());
try { try {
GoodsResponseRpc goodsResponseRpc = queryGoodsCommander(changeCommanderEnum, itemIdList, changeExecUser); GoodsResponseRpc goodsResponseRpc = queryGoodsCommander(changeCommanderEnum, itemIdList,
changeExecUser);
log.info("[queryCommanderEmail] queryGoodsCommander:{}", JSON.toJSONString(goodsResponseRpc)); log.info("[queryCommanderEmail] queryGoodsCommander:{}", JSON.toJSONString(goodsResponseRpc));
commanderResponse.setName(goodsResponseRpc.getName()); commanderResponse.setName(goodsResponseRpc.getName());
commanderResponse.setEmail(goodsResponseRpc.getEmail()); commanderResponse.setEmail(goodsResponseRpc.getEmail());
...@@ -358,8 +394,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -358,8 +394,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
String changeSupplier = req.getChangeSupplier(); String changeSupplier = req.getChangeSupplier();
Assert.isTrue(StringUtils.isNotBlank(changeSupplier), "变更负责人为供应商时,供应商不可为空"); Assert.isTrue(StringUtils.isNotBlank(changeSupplier), "变更负责人为供应商时,供应商不可为空");
try { try {
GoodsResponseRpc supplierResponseRpc = queryChangeSupplier(changeCommanderEnum, GoodsResponseRpc supplierResponseRpc = queryChangeSupplier(changeCommanderEnum, changeSupplier,
changeSupplier, changeExecUser); changeExecUser);
log.debug("[queryCommanderEmail] queryChangeSupplier:{}", JSON.toJSONString(supplierResponseRpc)); log.debug("[queryCommanderEmail] queryChangeSupplier:{}", JSON.toJSONString(supplierResponseRpc));
commanderResponse.setName(supplierResponseRpc.getName()); commanderResponse.setName(supplierResponseRpc.getName());
commanderResponse.setEmail(supplierResponseRpc.getEmail()); commanderResponse.setEmail(supplierResponseRpc.getEmail());
...@@ -375,7 +411,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -375,7 +411,8 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
/** /**
* 请求数据解析以及装载 * 请求数据解析以及装载
* *
* @param type 1:BU 2:计划 * @param type
* 1:BU 2:计划
* @param map * @param map
* @param response * @param response
*/ */
...@@ -385,7 +422,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -385,7 +422,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
if (rpcMap == null) { if (rpcMap == null) {
throw ExceptionFactory.createBiz(ResponseCode.OPERATOR_NOT_EXIST); throw ExceptionFactory.createBiz(ResponseCode.OPERATOR_NOT_EXIST);
} }
for (String rpc : rpcMap.keySet()) { for (String rpc: rpcMap.keySet()) {
ChangeGoodsPrincipalPO goodsRpc = map.get(Long.parseLong(rpc)); ChangeGoodsPrincipalPO goodsRpc = map.get(Long.parseLong(rpc));
String uid = null; String uid = null;
if (type.equals(ChangePrincipalEnum.GOODS_BU.getType())) { if (type.equals(ChangePrincipalEnum.GOODS_BU.getType())) {
...@@ -414,6 +451,22 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ ...@@ -414,6 +451,22 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
} }
} }
private void getGoodsPrincipalNameEmailV2(Map<Long, ChangeGoodsPrincipalPO> map, List<ItemManagerTO> product) {
for (ItemManagerTO rpc : product) {
ChangeGoodsPrincipalPO goodsRpc = map.get(rpc.getItemId());
String uid = null;
try {
uid = rpc.getUid();
goodsRpc.setFunctionaryName(rpc.getName());
goodsRpc.setFunctionaryEmail(uid);
} catch (Exception e) {
log.error("[getGoodsPrincipalNameEmailV2] query error,rpc:{}", rpc, e);
goodsRpc.setFunctionaryName(null);
goodsRpc.setFunctionaryEmail(null);
}
goodsRpc(ChangePrincipalEnum.GOODS_BU.getType(), uid, goodsRpc);
}
}
/** /**
* 负责人兜底方法 * 负责人兜底方法
......
...@@ -47,6 +47,12 @@ public class SupplierItemServiceImpl implements ISupplierItemService { ...@@ -47,6 +47,12 @@ public class SupplierItemServiceImpl implements ISupplierItemService {
} }
fullItemIds.removeAll(itemIds); fullItemIds.removeAll(itemIds);
} }
List<Long> itemIds = new ArrayList<>(fullItemIds);
AjaxResult<List<SpuTO>> listAjaxResult = itemRpcService.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds).build());
List<SpuTO> pageSpuTo = listAjaxResult.getData();
if (!CollectionUtils.isEmpty(pageSpuTo)) {
spuTOList.addAll(pageSpuTo);
}
} }
if (StringUtils.isNotBlank(itemId)) { if (StringUtils.isNotBlank(itemId)) {
spuTOList = spuTOList.stream().filter(i -> Long.valueOf(itemId).equals(i.getId())).collect(Collectors.toList()); spuTOList = spuTOList.stream().filter(i -> Long.valueOf(itemId).equals(i.getId())).collect(Collectors.toList());
......
/**
* @(#)ItemcenterRpcService.java, 2023/1/6.
* <p/>
* Copyright 2023 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.biz.service.rpc;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.netease.mail.yanxuan.change.biz.meta.exception.ExceptionFactory;
import com.netease.mail.yanxuan.change.common.bean.ResponseCode;
import com.netease.mail.yanxuan.change.common.bean.ResponseCodeEnum;
import com.netease.mail.yanxuan.change.integration.flow.goods.ItemManagerTO;
import com.netease.mail.yanxuan.change.integration.flow.goods.ItemcenterApiRpcService;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse;
import lombok.extern.slf4j.Slf4j;
/**
* @Author zcwang
* @Date 2023/1/6
*/
@Component
@Slf4j
public class ItemcenterRpcService {
@Autowired
private ItemcenterApiRpcService itemcenterApiRpcService;
public List<ItemManagerTO> getProduct(List<Long> itemIds) {
List<ItemManagerTO> itemManagerTOS = new ArrayList<>();
List<List<Long>> partition = Lists.partition(itemIds, 200);
for (List<Long> list : partition) {
String collect = StringUtils.join(list, ",");
AjaxResponse<List<ItemManagerTO>> response = itemcenterApiRpcService.getProduct("qc", collect);
if (ResponseCodeEnum.SUCCESS.getCode() == response.getCode()) {
log.info("[getProduct] response={}", JSON.toJSONString(response));
if (CollectionUtils.isNotEmpty(response.getData())) {
itemManagerTOS.addAll(response.getData());
}
} else {
log.error("[getProduct] get Product detail failed, query={}, errMsg={}", JSON.toJSONString(itemIds),
JSON.toJSONString(response));
throw ExceptionFactory.createBiz(ResponseCode.DETAIL_FLOW_ERROR, "查询工单详情错误");
}
}
return itemManagerTOS;
}
}
\ No newline at end of file
/**
* @(#)ItemManagerTO.java, 2023/1/6.
* <p/>
* Copyright 2023 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.integration.flow.goods;
import lombok.Data;
/**
* @Author zcwang
* @Date 2023/1/6
*/
@Data
public class ItemManagerTO {
/**
* 邮箱账号
*/
private String uid;
/**
* 用户名
*/
private String name;
/**
* 商品id
*/
private Long itemId;
}
\ No newline at end of file
package com.netease.mail.yanxuan.change.integration.flow.goods; package com.netease.mail.yanxuan.change.integration.flow.goods;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO;
import com.netease.yanxuan.missa.client.annotation.MissaClient; import com.netease.yanxuan.missa.client.annotation.MissaClient;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
/** /**
...@@ -24,6 +29,9 @@ public interface ItemcenterApiRpcService { ...@@ -24,6 +29,9 @@ public interface ItemcenterApiRpcService {
@PostMapping(value = "/yxicadmin/api/xhr/item/group/itemIds.json") @PostMapping(value = "/yxicadmin/api/xhr/item/group/itemIds.json")
String getDetail(@RequestBody List<Long> goodsId); String getDetail(@RequestBody List<Long> goodsId);
@GetMapping(value = "/yxicadmin/api/xhr/item/queryManagers")
AjaxResponse<List<ItemManagerTO>> getProduct(@RequestParam(value = "product") String product, @RequestParam(value = "itemIds") String itemIds);
/* /*
* 调用案例 * 调用案例
SupplierSendEmailReq req = new SupplierSendEmailReq(); SupplierSendEmailReq req = new SupplierSendEmailReq();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment