Commit 43d443ae by 穆龙飞

modify:修改人员接口返回

parent 97b8de02
Pipeline #47150 passed with stages
in 3 minutes 37 seconds
......@@ -36,6 +36,6 @@ public interface InteriorChangeConfigService {
* @param req
* @return
*/
CommanderResponse queryCommanderEmail(QueryCommanderEmailReq req);
List<CommanderResponse> queryCommanderEmail(QueryCommanderEmailReq req);
}
package com.netease.mail.yanxuan.change.biz.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
......@@ -24,11 +19,7 @@ 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.rpc.ItemcenterRpcService;
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.ChangePrincipalEnum;
import com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum;
import com.netease.mail.yanxuan.change.common.enums.CreateSourceEnum;
import com.netease.mail.yanxuan.change.common.enums.SupplierChangePrincipalEnum;
import com.netease.mail.yanxuan.change.common.enums.*;
import com.netease.mail.yanxuan.change.dal.entity.ChangeConfig;
import com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeCommanderPO;
import com.netease.mail.yanxuan.change.dal.meta.model.po.ChangeGoodsPrincipalPO;
......@@ -115,8 +106,10 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
//发起人;
// 如果是同舟端,发起人以商品开发兜底
if (changeCommander.getCreateSource().equals(CreateSourceEnum.TONG_ZHOU.getType())) {
return queryChangeSupplier(ChangeCommanderEnum.SUPPLIERS_ASSOCIATED, changeCommander.getSupplier(),
List<GoodsResponseRpc> goodsResponseRpcList = queryChangeSupplier(
ChangeCommanderEnum.SUPPLIERS_ASSOCIATED, changeCommander.getSupplier(),
SupplierChangePrincipalEnum.GOODS_BU.getName());
return goodsResponseRpcList.get(0);
}
rpc.setEmail(changeCommander.getFlowCreator());
return rpc;
......@@ -128,12 +121,14 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
}
if (Objects.equals(ChangeSubjectEnum.PRODUCT.getType(), changeConfig.getChangeSubject())) {
//商品变更
return queryGoodsCommander(changeCommanderEnum, changeCommander.getGoodsInfos(),
changeConfig.getChangeCommander());
List<GoodsResponseRpc> goodsResponseRpcList = queryGoodsCommander(changeCommanderEnum, changeCommander.getGoodsInfos(),
changeConfig.getChangeCommander());
return goodsResponseRpcList.get(0);
} else if (Objects.equals(ChangeSubjectEnum.SUPPLIER.getType(), changeConfig.getChangeSubject())) {
//供应商 采购 计划 SQE
return queryChangeSupplier(changeCommanderEnum, changeCommander.getChangeSupplierId(),
changeConfig.getChangeCommander());
List<GoodsResponseRpc> goodsResponseRpcList = queryChangeSupplier(changeCommanderEnum, changeCommander.getChangeSupplierId(),
changeConfig.getChangeCommander());
return goodsResponseRpcList.get(0);
}
//其他变更 备注 其他变更之后固定人 和发起人在上面判断会被排除掉 changeConfig.getChangeCommander();
return null;
......@@ -150,17 +145,12 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
* 商品的关联角色 ChangeCommanderEnum
* @return
*/
private GoodsResponseRpc queryGoodsCommander(ChangeCommanderEnum commanderEnum, List<Long> goodsInfos,
private List<GoodsResponseRpc> queryGoodsCommander(ChangeCommanderEnum commanderEnum, List<Long> goodsInfos,
String commander) {
if (!commanderEnum.getId().equals(ChangeCommanderEnum.GOODS_ASSOCIATED.getId())
|| CollectionUtils.isEmpty(goodsInfos) || commander == null) {
return null;
}
Map<String, GoodsResponseRpc> map = new HashMap<String, GoodsResponseRpc>();
//记录最大出现次数
int temp = 0;
//记录最大值
GoodsResponseRpc responseRpc = new GoodsResponseRpc();
//记录出现的所有值
List<GoodsResponseRpc> emails = new ArrayList<GoodsResponseRpc>();
//遍历取出所有商品关联的人
......@@ -203,30 +193,24 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
}
}
//逻辑发生变更
for (GoodsResponseRpc email: emails) {
if (!map.containsKey(email.getName())) {
email.setOccurrenceNumber(1);
} else {
GoodsResponseRpc goodsResponseRpc = map.get(email.getName());
email.setOccurrenceNumber(goodsResponseRpc.getOccurrenceNumber() + 1);
if (temp < goodsResponseRpc.getOccurrenceNumber()) {
temp = goodsResponseRpc.getOccurrenceNumber();
responseRpc = goodsResponseRpc;
}
}
map.put(email.getName(), email);
}
if (responseRpc.getName() == null) {
Iterator<GoodsResponseRpc> iterator = map.values().iterator();
responseRpc = iterator.next();
}
if (StringUtils.isBlank(responseRpc.getEmail())) {
/*
* for (GoodsResponseRpc email: emails) { if (!map.containsKey(email.getName())) { email.setOccurrenceNumber(1);
* } else { GoodsResponseRpc goodsResponseRpc = map.get(email.getName());
* email.setOccurrenceNumber(goodsResponseRpc.getOccurrenceNumber() + 1); if (temp <
* goodsResponseRpc.getOccurrenceNumber()) { temp = goodsResponseRpc.getOccurrenceNumber(); responseRpc =
* goodsResponseRpc; } } map.put(email.getName(), email); } if (responseRpc.getName() == null) {
* Iterator<GoodsResponseRpc> iterator = map.values().iterator(); responseRpc = iterator.next(); }
*/
if (CollectionUtils.isEmpty(emails)) {
//记录最大值
GoodsResponseRpc responseRpc = new GoodsResponseRpc();
Integer byType = ChangePrincipalEnum.getByType(commander);
if (null != byType) {
this.goodsGetEmail(responseRpc, byType);
}
emails.add(responseRpc);
}
return responseRpc;
return emails;
}
/**
......@@ -240,9 +224,9 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
* 供应商关联角色
* @return
*/
private GoodsResponseRpc queryChangeSupplier(ChangeCommanderEnum commanderEnum, String changeSupplierId,
private List<GoodsResponseRpc> queryChangeSupplier(ChangeCommanderEnum commanderEnum, String changeSupplierId,
String commander) {
GoodsResponseRpc goodsResponseRpc = new GoodsResponseRpc();
List<GoodsResponseRpc> goodsResponseRpcList = new ArrayList<>();
if (!commanderEnum.getId().equals(ChangeCommanderEnum.SUPPLIERS_ASSOCIATED.getId()) || changeSupplierId == null
|| commander == null) {
return null;
......@@ -268,17 +252,24 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
List<SupplierUserRsp> listAjaxResponse = supplierInfoService.querySupplierRelatedUser(req);
log.debug("[querySupplierRelatedUser] response:{}", JSON.toJSONString(listAjaxResponse));
if (!CollectionUtils.isEmpty(listAjaxResponse)) {
SupplierUserRsp supplierUserRsp = listAjaxResponse.get(0);
Map<String, String> uid2NameMap = supplierUserRsp.getUid2NameMap();
for (String key : uid2NameMap.keySet()) {
goodsResponseRpc.setName(uid2NameMap.get(key));
goodsResponseRpc.setEmail(key);
Optional<SupplierUserRsp> anySupplierUser = listAjaxResponse.stream()
.filter(i -> i.getSupplierId().equals(changeSupplierId)).findAny();
if (anySupplierUser.isPresent()) {
Map<String, String> uid2NameMap = anySupplierUser.get().getUid2NameMap();
for (String key: uid2NameMap.keySet()) {
GoodsResponseRpc goodsResponseRpc = new GoodsResponseRpc();
goodsResponseRpc.setName(uid2NameMap.get(key));
goodsResponseRpc.setEmail(key);
goodsResponseRpcList.add(goodsResponseRpc);
}
}
}
if (StringUtils.isBlank(goodsResponseRpc.getEmail())) {
if (CollectionUtils.isEmpty(goodsResponseRpcList)) {
GoodsResponseRpc goodsResponseRpc = new GoodsResponseRpc();
this.getEmail(goodsResponseRpc, req.getSearchType());
goodsResponseRpcList.add(goodsResponseRpc);
}
return goodsResponseRpc;
return goodsResponseRpcList;
}
/**
......@@ -320,7 +311,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
@Override
public Map<Long, ChangeGoodsPrincipalPO> queryGoodsPrincipalInfo(List<Long> itemIds) {
Map<Long, ChangeGoodsPrincipalPO> map = new HashMap<>();
for (Long itemId : itemIds) {
for (Long itemId: itemIds) {
map.put(itemId, new ChangeGoodsPrincipalPO());
}
//商品BU
......@@ -334,14 +325,16 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
//商品采购
String GoodsPurchase = supplierSendService.queryGoodsPurchase(itemIds);
JSONObject jsonObject = JSONObject.parseObject(GoodsPurchase);
List<GoodsPurchaseRpc> purchaseRpcs = JSONObject.parseArray(jsonObject.get("data").toString(), GoodsPurchaseRpc.class);
for (GoodsPurchaseRpc rpc : purchaseRpcs) {
List<GoodsPurchaseRpc> purchaseRpcs = JSONObject.parseArray(jsonObject.get("data").toString(),
GoodsPurchaseRpc.class);
for (GoodsPurchaseRpc rpc: purchaseRpcs) {
map.get(rpc.getItemId().longValue()).setPurchaseName(rpc.getSupplierTraceBusinessName());
map.get(rpc.getItemId().longValue()).setPurchaseEmail(rpc.getSupplierTraceBusiness());
goodsRpc(ChangePrincipalEnum.PURCHASE.getType(), rpc.getSupplierTraceBusinessName(), map.get(rpc.getItemId().longValue()));
goodsRpc(ChangePrincipalEnum.PURCHASE.getType(), rpc.getSupplierTraceBusinessName(),
map.get(rpc.getItemId().longValue()));
}
//SQE
for (Long itemId : itemIds) {
for (Long itemId: itemIds) {
String sqe = qcApiRpcService.getDetail(itemId.intValue());
logger.info("[queryGoodsPrincipalInfo] sqe:{}", sqe);
JSONObject jsonObject1 = JSONObject.parseObject(sqe);
......@@ -357,61 +350,75 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
}
@Override
public CommanderResponse queryCommanderEmail(QueryCommanderEmailReq req) {
public List<CommanderResponse> queryCommanderEmail(QueryCommanderEmailReq req) {
Integer changeExecUserType = req.getChangeExecUserType();
String changeExecUser = req.getChangeExecUser();
ChangeCommanderEnum changeCommanderEnum = ChangeCommanderEnum.getChangeCommanderEnum(changeExecUserType);
log.info("[queryCommanderEmail] req:{},changeCommanderEnum:{}", JSON.toJSONString(req), changeCommanderEnum);
Assert.notNull(changeCommanderEnum, "变更负责人类型错误");
CommanderResponse commanderResponse = new CommanderResponse();
switch (changeCommanderEnum) {
case COMMANDER_ORIGINATOR:
// 如果是同舟端,发起人以商品开发兜底
if (req.getCreateSource().equals(CreateSourceEnum.TONG_ZHOU.getType())) {
List<CommanderResponse> commanderResponseList = new ArrayList<>();
try {
GoodsResponseRpc goodsResponseRpc = queryChangeSupplier(
List<GoodsResponseRpc> goodsResponseRpcList = queryChangeSupplier(
ChangeCommanderEnum.SUPPLIERS_ASSOCIATED, req.getChangeSupplier(),
SupplierChangePrincipalEnum.GOODS_BU.getName());
commanderResponse.setName(goodsResponseRpc.getName());
commanderResponse.setEmail(goodsResponseRpc.getEmail());
goodsResponseRpcList.forEach(i -> {
CommanderResponse commanderResponse = new CommanderResponse();
commanderResponse.setName(i.getName());
commanderResponse.setEmail(i.getEmail());
commanderResponseList.add(commanderResponse);
});
} catch (Exception e) {
log.error("[queryCommanderEmail] goodsResponseRpc error,e{}", e);
}
return commanderResponse;
return commanderResponseList;
} else {
return null;
return new ArrayList<>();
}
case FIXED_PERSON:
return null;
return new ArrayList<>();
case GOODS_ASSOCIATED:
String changeItems = req.getChangeItems();
Assert.isTrue(StringUtils.isNotBlank(changeItems), "变更负责人为商品时,商品列表不可为空");
List<ItemVO> itemVOS = JSON.parseArray(changeItems, ItemVO.class);
List<Long> itemIdList = itemVOS.stream().map(ItemVO::getItemId).collect(Collectors.toList());
List<CommanderResponse> commanderResponseList = new ArrayList<>();
try {
GoodsResponseRpc goodsResponseRpc = queryGoodsCommander(changeCommanderEnum, itemIdList,
List<GoodsResponseRpc> goodsResponseRpcList = queryGoodsCommander(changeCommanderEnum, itemIdList,
changeExecUser);
log.info("[queryCommanderEmail] queryGoodsCommander:{}", JSON.toJSONString(goodsResponseRpc));
commanderResponse.setName(goodsResponseRpc.getName());
commanderResponse.setEmail(goodsResponseRpc.getEmail());
log.info("[queryCommanderEmail] queryGoodsCommander:{}", JSON.toJSONString(goodsResponseRpcList));
goodsResponseRpcList.forEach(i -> {
CommanderResponse commanderResponse = new CommanderResponse();
commanderResponse.setName(i.getName());
commanderResponse.setEmail(i.getEmail());
commanderResponseList.add(commanderResponse);
});
} catch (Exception e) {
log.error("[queryGoodsCommander] error,e{}", e);
}
return commanderResponse;
return commanderResponseList;
case SUPPLIERS_ASSOCIATED:
String changeSupplier = req.getChangeSupplier();
Assert.isTrue(StringUtils.isNotBlank(changeSupplier), "变更负责人为供应商时,供应商不可为空");
List<CommanderResponse> commanderSupplierResponseList = new ArrayList<>();
try {
GoodsResponseRpc supplierResponseRpc = queryChangeSupplier(changeCommanderEnum, changeSupplier,
changeExecUser);
log.debug("[queryCommanderEmail] queryChangeSupplier:{}", JSON.toJSONString(supplierResponseRpc));
commanderResponse.setName(supplierResponseRpc.getName());
commanderResponse.setEmail(supplierResponseRpc.getEmail());
List<GoodsResponseRpc> supplierResponseRpcList = queryChangeSupplier(changeCommanderEnum,
changeSupplier, changeExecUser);
log.debug("[queryCommanderEmail] queryChangeSupplier:{}",
JSON.toJSONString(supplierResponseRpcList));
supplierResponseRpcList.forEach(i -> {
CommanderResponse commanderResponse = new CommanderResponse();
commanderResponse.setName(i.getName());
commanderResponse.setEmail(i.getEmail());
commanderSupplierResponseList.add(commanderResponse);
});
} catch (Exception e) {
log.error("[queryChangeSupplier] error,e{}", e);
}
return commanderResponse;
return commanderSupplierResponseList;
default:
throw ExceptionFactory.createBiz(ResponseCode.COMMANDER_TYPE_NOT_EXIST, "变更负责人类型错误");
}
......@@ -461,7 +468,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
}
private void getGoodsPrincipalNameEmailV2(Map<Long, ChangeGoodsPrincipalPO> map, List<ItemManagerTO> product) {
for (ItemManagerTO rpc : product) {
for (ItemManagerTO rpc: product) {
ChangeGoodsPrincipalPO goodsRpc = map.get(rpc.getItemId());
String uid = null;
try {
......
......@@ -28,6 +28,7 @@
<result column="create_source" jdbcType="INTEGER" property="createSource" />
<result column="create_supplier" jdbcType="VARCHAR" property="createSupplier" />
<result column="change_result_desc" jdbcType="VARCHAR" property="changeResultDesc" />
<result column="change_profit_amount" jdbcType="VARCHAR" property="changeProfitAmount" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="creator" jdbcType="VARCHAR" property="creator" />
<result column="create_time" jdbcType="BIGINT" property="createTime" />
......@@ -38,7 +39,7 @@
change_level, change_commander, change_department, participate_change_exec_department,
change_item, change_sku, change_supplier, change_reason, change_content, change_risk_desc, change_checking,
change_profit, change_profit_desc, change_confirm_result_time, `state`, cancel_reason,
change_result, create_source, create_supplier, change_result_desc, remark, creator,
change_result, create_source, create_supplier, change_result_desc, remark, creator, change_profit_amount,
create_time, update_time
</sql>
......
......@@ -17,7 +17,7 @@ public class SupplierUserRsp {
private String supplierId;
/**
* 角色ID(1-采购 2-计划 3-SQE 4-商品开发) 以及名称
* key:邮箱 value:姓名
*/
private Map<String,String> uid2NameMap;
......
......@@ -42,6 +42,8 @@ import com.netease.yanxuan.flowx.sdk.meta.dto.exec.UserBaseContainerDTO;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
/**
* @Author zcwang
* @Date 2022/11/14
......@@ -252,7 +254,7 @@ public class ChangeFlowController {
* @return
*/
@PostMapping("/queryCommanderInfo")
public AjaxResult<CommanderResponse> queryCommanderInfo(@RequestBody QueryCommanderEmailReq req) {
public AjaxResult<List<CommanderResponse>> queryCommanderInfo(@RequestBody QueryCommanderEmailReq req) {
return AjaxResult.success(interiorChangeConfigService.queryCommanderEmail(req));
}
}
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