Commit 93b7e6a0 by 穆龙飞

modify:修改人员邮箱

parent 622dea05
......@@ -143,7 +143,7 @@ public class ChangeFlowBiz {
try {
goodsResponseRpc = interiorChangeConfigService.queryCommanderInfo(
ChangeCommanderPO.builder().parentChangeClassId(parentChangeClassId).sonChangeClassId(sonChangeClassId)
.changeSupplierId(changeFlowCreateReq.getChangeSupplier()).goodsInfos(itemIds).build());
.changeSupplierId(changeFlowCreateReq.getChangeSupplier()).goodsInfos(itemIds).flowCreator(uid).build());
changeCommander = goodsResponseRpc.getEmail();
} catch (Exception e) {
log.error("[op:queryCommanderInfo] error, e:{}", e);
......
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.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.netease.mail.yanxuan.change.biz.config.AppConfig;
......@@ -41,8 +26,17 @@ import com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplier
import com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplierSendService;
import com.netease.mail.yanxuan.change.integration.flow.supplier.req.SupplierRelatedUserReq;
import com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.SupplierUserRsp;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author WangJiaXiang
......@@ -52,7 +46,7 @@ import lombok.extern.slf4j.Slf4j;
@Service
public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigService {
private static Logger logger = LoggerFactory.getLogger(InteriorChangeConfigServiceImpl.class);
private static final Logger logger = LoggerFactory.getLogger(InteriorChangeConfigServiceImpl.class);
@Autowired
private ChangeConfigService changeConfigService;
......@@ -73,13 +67,14 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
private AppConfig appConfig;
/**
* 项目上线后接口需要修改未线上环境
* 项目上线后接口需要修改未线上环境
*/
@Autowired
private FlowRpcSupplierInfoService supplierInfoService;
/**
* 接口不完整,关于商品的查询已经完成 供应商查询不完整接口已对接 具体返回值接口测试未完成
*
* @param changeCommander
* @return
*/
......@@ -88,26 +83,31 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
GoodsResponseRpc rpc = new GoodsResponseRpc();
//获取模板名称 通过一级变更类型 二级变更类型ID 定位模板
ChangeConfig changeConfig = changeConfigService.queryChangeType(changeCommander.getParentChangeClassId(), changeCommander.getSonChangeClassId());
if (changeConfig == null){
if (changeConfig == null) {
return null;
}
//查询出当前模板配置中选择的 角色
ChangeCommanderEnum changeCommanderEnum = ChangeCommanderEnum.getChangeCommanderEnum(changeConfig.getChangeCommanderType());
if (changeCommanderEnum == null){
if (changeCommanderEnum == null) {
return null;
}
//直接排除 选项为固定人 或者发起人
if (changeConfig.getChangeCommanderType() == ChangeCommanderEnum.COMMANDER_ORIGINATOR.getId() || changeConfig.getChangeCommanderType() == ChangeCommanderEnum.FIXED_PERSON.getId() ){
//固定人或者发起人;
if (Objects.equals(changeConfig.getChangeCommanderType(), ChangeCommanderEnum.COMMANDER_ORIGINATOR.getId())) {
//发起人;
rpc.setEmail(changeCommander.getFlowCreator());
return rpc;
}
if (Objects.equals(changeConfig.getChangeCommanderType(), ChangeCommanderEnum.FIXED_PERSON.getId())) {
//固定人;
rpc.setEmail(changeConfig.getChangeCommander());
return rpc;
}
if (ChangeSubjectEnum.PRODUCT.getType() == changeConfig.getChangeSubject()){
if (Objects.equals(ChangeSubjectEnum.PRODUCT.getType(), changeConfig.getChangeSubject())) {
//商品变更
return queryGoodsCommander(changeCommanderEnum,changeCommander.getGoodsInfos(),changeConfig.getChangeCommander());
}else if (ChangeSubjectEnum.SUPPLIER.getType() == changeConfig.getChangeSubject()){
return queryGoodsCommander(changeCommanderEnum, changeCommander.getGoodsInfos(), changeConfig.getChangeCommander());
} else if (Objects.equals(ChangeSubjectEnum.SUPPLIER.getType(), changeConfig.getChangeSubject())) {
//供应商 采购 计划 SQE
return queryChangeSupplier(changeCommanderEnum,changeCommander.getChangeSupplierId(),changeConfig.getChangeCommander());
return queryChangeSupplier(changeCommanderEnum, changeCommander.getChangeSupplierId(), changeConfig.getChangeCommander());
}
//其他变更 备注 其他变更之后固定人 和发起人在上面判断会被排除掉 changeConfig.getChangeCommander();
return null;
......@@ -115,17 +115,18 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
/**
* 商品的最终角色查询
* @param commanderEnum 查询方向 枚举
* @param goodsInfos 商品的列表
* @param commander 商品的关联角色 ChangeCommanderEnum
*
* @param commanderEnum 查询方向 枚举
* @param goodsInfos 商品的列表
* @param commander 商品的关联角色 ChangeCommanderEnum
* @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())
|| CollectionUtils.isEmpty(goodsInfos) || commander == null) {
|| CollectionUtils.isEmpty(goodsInfos) || commander == null) {
return null;
}
Map<String,GoodsResponseRpc> map = new HashMap<String,GoodsResponseRpc>();
Map<String, GoodsResponseRpc> map = new HashMap<String, GoodsResponseRpc>();
//记录最大出现次数
int temp = 0;
//记录最大值
......@@ -136,16 +137,16 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
if (ChangePrincipalEnum.GOODS_BU.getName().equals(commander)) {
String detail = itemcenterApiRpcService.getDetail(goodsInfos);
logger.error("根据商品查看商品负责BU接口返回值\t"+detail);
getGoodsNameEmail(emails,detail);
logger.error("根据商品查看商品负责BU接口返回值\t" + detail);
getGoodsNameEmail(emails, detail);
} else if (ChangePrincipalEnum.PURCHASE.getName().equals(commander)) {
//采购返回值处理逻辑
String detail = supplierSendService.queryGoodsPurchase(goodsInfos);
logger.error("根据商品查看商品负责采购接口返回值\t"+detail);
logger.error("根据商品查看商品负责采购接口返回值\t" + detail);
JSONObject jsonObject = JSONObject.parseObject(detail);
List<GoodsPurchaseRpc> purchaseRpcs = JSONObject.parseArray(jsonObject.get("data").toString(), GoodsPurchaseRpc.class);
for (GoodsPurchaseRpc purchaseRpc : purchaseRpcs){
for (GoodsPurchaseRpc purchaseRpc : purchaseRpcs) {
GoodsResponseRpc goodsRpc = new GoodsResponseRpc();
goodsRpc.setEmail(purchaseRpc.getSupplierTraceBusiness());
goodsRpc.setName(purchaseRpc.getSupplierName());
......@@ -153,15 +154,15 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
}
} else if (ChangePrincipalEnum.PROSPECTUS.getName().equals(commander)) {
String detail = pfuApiRpcService.getDetail(goodsInfos);
logger.error("根据商品查看商品负责计划接口返回值\t"+detail);
getGoodsNameEmail(emails,detail);
logger.error("根据商品查看商品负责计划接口返回值\t" + detail);
getGoodsNameEmail(emails, detail);
} else if (ChangePrincipalEnum.SQE.getName().equals(commander)) {
for (Long goods:goodsInfos) {
for (Long goods : goodsInfos) {
String detail = qcApiRpcService.getDetail(goods.intValue());
logger.error("根据商品查看商品负责SQE接口返回值\t"+detail);
logger.error("根据商品查看商品负责SQE接口返回值\t" + detail);
JSONObject jsonObject = JSONObject.parseObject(detail);
GoodsResponseSqeRpc data = jsonObject.getObject("data", GoodsResponseSqeRpc.class);
if (data != null){
if (data != null) {
//需要验证返回值 是否正确
GoodsResponseRpc rpc = new GoodsResponseRpc();
rpc.setEmail(data.getUserName());
......@@ -171,20 +172,20 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
}
}
//逻辑发生变更
for (GoodsResponseRpc email : emails){
if (!map.containsKey(email.getName())){
for (GoodsResponseRpc email : emails) {
if (!map.containsKey(email.getName())) {
email.setOccurrenceNumber(1);
}else{
} else {
GoodsResponseRpc goodsResponseRpc = map.get(email.getName());
email.setOccurrenceNumber(goodsResponseRpc.getOccurrenceNumber()+1);
if (temp < goodsResponseRpc.getOccurrenceNumber()){
email.setOccurrenceNumber(goodsResponseRpc.getOccurrenceNumber() + 1);
if (temp < goodsResponseRpc.getOccurrenceNumber()) {
temp = goodsResponseRpc.getOccurrenceNumber();
name = goodsResponseRpc;
}
}
map.put(email.getName(),email);
map.put(email.getName(), email);
}
if (name.getName() == null){
if (name.getName() == null) {
Iterator<GoodsResponseRpc> iterator = map.values().iterator();
name = iterator.next();
}
......@@ -192,39 +193,39 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
}
/**
* 供应商角色最终查询
* @param commanderEnum 查询方向 枚举
*
* @param commanderEnum 查询方向 枚举
* @param changeSupplierId 供应商信息
* @param commander 供应商关联角色
* @param commander 供应商关联角色
* @return
*/
private GoodsResponseRpc queryChangeSupplier(ChangeCommanderEnum commanderEnum,String changeSupplierId,String commander){
private GoodsResponseRpc queryChangeSupplier(ChangeCommanderEnum commanderEnum, String changeSupplierId, String commander) {
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;
}
SupplierRelatedUserReq req = new SupplierRelatedUserReq();
List<String> supplierIdList = new ArrayList<>();
supplierIdList.add(changeSupplierId);
//changeSupplier 根据提供的信息去查询 最终返回
if (ChangePrincipalEnum.PURCHASE.getName().equals(commander)){
if (ChangePrincipalEnum.PURCHASE.getName().equals(commander)) {
req.setSearchType(1);
}else if (ChangePrincipalEnum.PROSPECTUS.getName().equals(commander)){
} else if (ChangePrincipalEnum.PROSPECTUS.getName().equals(commander)) {
req.setSearchType(2);
}else if (ChangePrincipalEnum.SQE.getName().equals(commander)){
} else if (ChangePrincipalEnum.SQE.getName().equals(commander)) {
req.setSearchType(3);
}
req.setSupplierIdList(supplierIdList);
//进行参数解析
List<SupplierUserRsp> listAjaxResponse = supplierInfoService.querySupplierRelatedUser(req);
if (CollectionUtils.isEmpty(listAjaxResponse)){
if (CollectionUtils.isEmpty(listAjaxResponse)) {
return null;
}
SupplierUserRsp supplierUserRsp = listAjaxResponse.get(0);
Map<String, String> uid2NameMap = supplierUserRsp.getUid2NameMap();
for (String key : uid2NameMap.keySet()){
for (String key : uid2NameMap.keySet()) {
rpc.setName(key);
rpc.setEmail(uid2NameMap.get(key));
}
......@@ -234,16 +235,17 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
/**
* 重复代码复用方法
* @param emails 储存邮箱队列
* @param response 请求返结果
*
* @param emails 储存邮箱队列
* @param response 请求返结果
*/
private void getGoodsNameEmail(List<GoodsResponseRpc> emails,String response){
private void getGoodsNameEmail(List<GoodsResponseRpc> emails, String response) {
JSONObject jsonObject = JSONObject.parseObject(response);
Map<String,JSONObject> rpcMap = JSONObject.parseObject(jsonObject.get("data").toString(), Map.class);
if (rpcMap == null){
Map<String, JSONObject> rpcMap = JSONObject.parseObject(jsonObject.get("data").toString(), Map.class);
if (rpcMap == null) {
throw ExceptionFactory.createBiz(ResponseCode.OPERATOR_NOT_EXIST);
}
for (String rpc : rpcMap.keySet()){
for (String rpc : rpcMap.keySet()) {
GoodsResponseRpc goodsRpc = new GoodsResponseRpc();
goodsRpc.setEmail(rpcMap.get(rpc).get("uid").toString());
goodsRpc.setName(rpcMap.get(rpc).get("name").toString());
......@@ -252,39 +254,39 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
}
@Override
public Map<Long, ChangeGoodsPrincipalPO> queryGoodsPrincipalInfo(List<Long> itemIds){
public Map<Long, ChangeGoodsPrincipalPO> queryGoodsPrincipalInfo(List<Long> itemIds) {
Map<Long, ChangeGoodsPrincipalPO> map = new HashMap<>();
for (Long itemId : itemIds){
map.put(itemId,new ChangeGoodsPrincipalPO());
for (Long itemId : itemIds) {
map.put(itemId, new ChangeGoodsPrincipalPO());
}
//商品BU
String functionary = itemcenterApiRpcService.getDetail(itemIds);
logger.error("请求商品BU结果"+functionary);
getGoodsPrincipalNameEmail(ChangePrincipalEnum.GOODS_BU.getType(),map,functionary);
logger.error("请求商品BU结果" + functionary);
getGoodsPrincipalNameEmail(ChangePrincipalEnum.GOODS_BU.getType(), map, functionary);
//计划
String project = pfuApiRpcService.getDetail(itemIds);
logger.error("请求商品计划结果"+project);
getGoodsPrincipalNameEmail(ChangePrincipalEnum.PURCHASE.getType(),map,project);
logger.error("请求商品计划结果" + project);
getGoodsPrincipalNameEmail(ChangePrincipalEnum.PURCHASE.getType(), map, project);
//商品采购
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){
for (GoodsPurchaseRpc rpc : purchaseRpcs) {
map.get(rpc.getItemId().longValue()).setPurchaseName(rpc.getSupplierName());
map.get(rpc.getItemId().longValue()).setPurchaseEmail(rpc.getSupplierTraceBusiness());
goodsRpc(ChangePrincipalEnum.PURCHASE.getType(),rpc.getSupplierName(),map.get(rpc.getItemId().longValue()));
goodsRpc(ChangePrincipalEnum.PURCHASE.getType(), rpc.getSupplierName(), map.get(rpc.getItemId().longValue()));
}
//SQE
for(Long itemId : itemIds){
for (Long itemId : itemIds) {
String sqe = qcApiRpcService.getDetail(itemId.intValue());
logger.error("根据商品查看商品负责SQE接口返回值\t"+sqe);
logger.error("根据商品查看商品负责SQE接口返回值\t" + sqe);
JSONObject jsonObject1 = JSONObject.parseObject(sqe);
GoodsResponseSqeRpc data = jsonObject1.getObject("data", GoodsResponseSqeRpc.class);
if (data != null){
if (data != null) {
//需要验证返回值 是否正确
map.get(itemId).setGoodsSqeName(data.getRealName());
map.get(itemId).setGoodsSqeEmail(data.getUserName());
goodsRpc(ChangePrincipalEnum.SQE.getType(),data.getRealName(),map.get(itemId));
goodsRpc(ChangePrincipalEnum.SQE.getType(), data.getRealName(), map.get(itemId));
}
}
return map;
......@@ -295,7 +297,7 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
Integer changeExecUserType = req.getChangeExecUserType();
String changeExecUser = req.getChangeExecUser();
ChangeCommanderEnum changeCommanderEnum = ChangeCommanderEnum.getChangeCommanderEnum(changeExecUserType);
log.debug("[queryCommanderEmail] req:{},changeCommanderEnum:{}",JSON.toJSONString(req), changeCommanderEnum);
log.debug("[queryCommanderEmail] req:{},changeCommanderEnum:{}", JSON.toJSONString(req), changeCommanderEnum);
Assert.notNull(changeCommanderEnum, "变更负责人类型错误");
CommanderResponse commanderResponse = new CommanderResponse();
switch (changeCommanderEnum) {
......@@ -339,26 +341,27 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
/**
* 请求数据解析以及装载
* @param type 1:BU 2:计划
*
* @param type 1:BU 2:计划
* @param map
* @param response
*/
private void getGoodsPrincipalNameEmail(Integer type,Map<Long, ChangeGoodsPrincipalPO> map,String response){
private void getGoodsPrincipalNameEmail(Integer type, Map<Long, ChangeGoodsPrincipalPO> map, String response) {
JSONObject jsonObject = JSONObject.parseObject(response);
Map<String,JSONObject> rpcMap = JSONObject.parseObject(jsonObject.get("data").toString(), Map.class);
if (rpcMap == null){
Map<String, JSONObject> rpcMap = JSONObject.parseObject(jsonObject.get("data").toString(), Map.class);
if (rpcMap == null) {
throw ExceptionFactory.createBiz(ResponseCode.OPERATOR_NOT_EXIST);
}
for (String rpc : rpcMap.keySet()){
for (String rpc : rpcMap.keySet()) {
ChangeGoodsPrincipalPO goodsRpc = map.get(Long.parseLong(rpc));
if (type == ChangePrincipalEnum.GOODS_BU.getType()){
if (type == ChangePrincipalEnum.GOODS_BU.getType()) {
goodsRpc.setFunctionaryName(rpcMap.get(rpc).get("uid").toString());
goodsRpc.setFunctionaryEmail(rpcMap.get(rpc).get("name").toString());
goodsRpc(ChangePrincipalEnum.GOODS_BU.getType(), rpcMap.get(rpc).get("uid").toString(),goodsRpc);
}else {
goodsRpc(ChangePrincipalEnum.GOODS_BU.getType(), rpcMap.get(rpc).get("uid").toString(), goodsRpc);
} else {
goodsRpc.setGoodsProjectName(rpcMap.get(rpc).get("uid").toString());
goodsRpc.setGoodsProjectEmail(rpcMap.get(rpc).get("name").toString());
goodsRpc(ChangePrincipalEnum.PROSPECTUS.getType(), rpcMap.get(rpc).get("uid").toString(),goodsRpc);
goodsRpc(ChangePrincipalEnum.PROSPECTUS.getType(), rpcMap.get(rpc).get("uid").toString(), goodsRpc);
}
}
}
......@@ -366,16 +369,17 @@ public class InteriorChangeConfigServiceImpl implements InteriorChangeConfigServ
/**
* 负责人兜底方法
*
* @param type
* @param uid
* @param goodsRpc
*/
private void goodsRpc(Integer type,String uid,ChangeGoodsPrincipalPO goodsRpc){
private void goodsRpc(Integer type, String uid, ChangeGoodsPrincipalPO goodsRpc) {
// todo:mock数据
String defaultName = appConfig.getDefaultName();
String defaultEmail = appConfig.getDefaultEmail();
if (uid == null){
switch (type){
if (uid == null) {
switch (type) {
case 1:
//BU
goodsRpc.setFunctionaryName(defaultName);
......
......@@ -38,4 +38,9 @@ public class ChangeCommanderPO {
*/
private List<Long> goodsInfos;
/**
* 创建人
*/
private String flowCreator;
}
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