Commit 0c903091 by zhaoxiaolei

撞配

parent 11c4a211
......@@ -73,7 +73,7 @@ public class IntegrateController {
if (ObjectUtils.isEmpty(redis)) {
List<SuperTableInfoDto> superTableInfos = superTableInfoMapper.findBySuperBomCode(selectorEntity.getSuperBomCode());
List<RedisEntity> redisEntities = new ArrayList<>();
for (SuperTableInfoDto superTableInfo : superTableInfos) {
superTableInfos.forEach(superTableInfo->{
RedisEntity redisEntity = new RedisEntity();
redisEntity.setTableName(superTableInfo.getTableName());
redisEntity.setTableId(superTableInfo.getTableId());
......@@ -115,7 +115,7 @@ public class IntegrateController {
redisEntity.setData(map);
redisEntities.add(redisEntity);
redisHelper.set(RedisKey.getVariantTableKey(selectorEntity.getSystem(), selectorEntity.getProductClassCode(), selectorEntity.getSuperBomCode()), JSONObject.toJSONString(redisEntities), 86400);
}
});
}
ConfigurableBom configurableBom = integrateService.getOdInfo(selectorEntity);
......
......@@ -31,4 +31,5 @@ public interface SuperBomSkuInfoMapper extends IBaseMapper<SuperBomSkuInfo> {
ArrayList<SuperBomSkuConfigInfo> getConfigInfos(String configId);
void updateSkuStatus(SuperBomSkuInfo returnSkuInfo);
}
package cn.com.uitech.authorization.pojo.dto;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Accessors(chain = true)
@NoArgsConstructor
@Getter
@Setter
@ToString
public class PLMResultDto implements Serializable{
private static final long serialVersionUID = -6753862215721540595L;
/**
* 状态:0:成功,1:失败。-1:缺少必须参数
*/
private Integer code;
/**
*状态描述
*/
private String message;
private Object data;
}
......@@ -10,6 +10,7 @@ import lombok.experimental.Accessors;
import javax.persistence.Column;
import javax.persistence.Table;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
......@@ -106,6 +107,11 @@ public class SuperBomSkuInfo extends BasePageDto implements Serializable {
*/
@Column(name = "description")
private String description;
/**
* 特配描述
*/
@Column(name = "description_bom")
private String descriptionBom;
/**
* cpqconfigid
......@@ -136,6 +142,16 @@ public class SuperBomSkuInfo extends BasePageDto implements Serializable {
*/
@Column(name = "apply_status")
private String applyStatus;
/**
* 已回号/未回号
*/
@Column(name = "apply_user")
private String applyUser;
/**
* 已回号/未回号
*/
@Column(name = "apply_time")
private Timestamp applyTime;
/**
* 集成来的
......
......@@ -38,9 +38,9 @@ public class SecurityService {
SimpleGrantedAuthority simpleGrantedAuthority = new SimpleGrantedAuthority("Anonymous");
simpleGrantedAuthorities.add(simpleGrantedAuthority);
return new UserImpl("Anonymous", "123456", simpleGrantedAuthorities
,0,"Anonymous"
,"Anonymous","","","");
return new UserImpl("system", "123456", simpleGrantedAuthorities
,0,"system"
,"system","","","");
} else {
String userCode = authentication.getName();
......
......@@ -15,7 +15,11 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import javassist.expr.Instanceof;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -35,8 +39,6 @@ import javax.annotation.Resource;
import java.sql.Timestamp;
import java.util.*;
import static java.util.stream.Collectors.toList;
@Service
@Transactional
......@@ -344,17 +346,25 @@ public class IntegrateServiceImpl implements IntegrateService {
}
@Override
public Characteristic getCNameByCode(String characteristicCode,String superBomCode) {
return characteristicMapper.getCNameByCode(characteristicCode,superBomCode);
public Characteristic getCNameByCode(String characteristicCode, String superBomCode) {
return characteristicMapper.getCNameByCode(characteristicCode, superBomCode);
}
@Override
public Object GetSKUByConfigInfo(SuperBomSkuInfo superBomSkuInfo) {
GetProductOutDto result = new GetProductOutDto();
if (!ObjectUtils.isEmpty(superBomSkuInfo)) {
//根据 政采 模式 品牌 superbom 查询sku主信息
if(superBomSkuInfo.getPoliticalMiningId()!=null &&superBomSkuInfo.getPatern()!=null &&superBomSkuInfo.getSuperBomCode()!=null &&superBomSkuInfo.getBrand()!=null){
/**
1.申请SKU->验证配置是否存在->存在->是否生成SKU->生成SKU->返回SKU信息
2.申请SKU->验证配置是否存在->存在->是否生成SKU->未生成SKU->使用历史configid申请SKU->返回SKU信息
3.申请SKU->验证配置是否存在->不存在->保存配置信息->申请SKU->返回SKU信息
4.申请失败的SKU->可以再次提交申请->申请SKU->返回SKU信息
**/
if (superBomSkuInfo.getPoliticalMiningId() != null && superBomSkuInfo.getPatern() != null && superBomSkuInfo.getSuperBomCode() != null && superBomSkuInfo.getBrand() != null) {
superBomSkuInfo.setApplyUser("CRM");
//根据 政采 模式 品牌 superbom 查询sku主信息
List<SuperBomSkuInfo> skuInfos = superBomSkuInfoMapper.getSkuInfo(superBomSkuInfo);
Boolean flag = true;
if (!CollectionUtils.isEmpty(skuInfos)) {
......@@ -363,20 +373,58 @@ public class IntegrateServiceImpl implements IntegrateService {
ArrayList<SuperBomSkuConfigInfo> items = superBomSkuInfoMapper.getConfigInfos(skuInfo.getConfigId());
ArrayList<SuperBomSkuConfigInfo> params = new ArrayList<>(superBomSkuInfo.getCharacteristicList());
boolean equals = params.toString().equals(items.toString());
//装配成功 返回 sku信息
//撞配成功
if (equals) {
SuperBomSkuInfo getSkuByConfigId = superBomSkuInfoMapper.getSkuInfoByConfigId(skuInfo.getConfigId());
if(!StringUtils.isEmpty(getSkuByConfigId.getSkuCode())){
//1.申请SKU->验证配置是否存在->存在->是否生成SKU->生成SKU->返回SKU信息
superBomSkuInfo.setSkuCode(getSkuByConfigId.getSkuCode());
superBomSkuInfo.setSkuName(getSkuByConfigId.getSkuName());
result.setMsg("配置已存在,请勿重复申请");
result.setMsg("配置已存在,请勿重复申请! SKUCode:"+superBomSkuInfo.getSkuCode()+"SKUName:"+superBomSkuInfo.getSkuName());
result.setCode(500);
result.setData(superBomSkuInfo);
return result;
}else{
//2.申请SKU->验证配置是否存在->存在->是否生成SKU->
// 未生成SKU->使用历史configid申请SKU->返回SKU信息
superBomSkuInfo.setConfigId(skuInfo.getConfigId());
ApplySkuCodeResultDto applySkuCodeResultDto = applySkuCode(superBomSkuInfo);
if (applySkuCodeResultDto.getCode().equals(200)) {
if (applySkuCodeResultDto.getCode().equals(200)) {
ApplySkuCodeResultDto.data data = applySkuCodeResultDto.getData();
data.setConfigId(superBomSkuInfo.getConfigId());
data.setMsg("已回号");
data.setUser(superBomSkuInfo.getApplyUser());
characteristicMapper.updateSuperBomSkuInfo(data);
superBomSkuInfo.setSkuCode(data.getSkuCode());
superBomSkuInfo.setSkuName(data.getSkuName());
// result.setMsg(applySkuCodeResultDto.getMsg());
result.setMsg("配置已存在,请勿重复申请! SKUCode:"+superBomSkuInfo.getSkuCode()+"SKUName:"+superBomSkuInfo.getSkuName());
result.setCode(500);
result.setData(superBomSkuInfo);
return result;
} else {
superBomSkuInfoMapper.updateSkuStatus(superBomSkuInfo);
result.setCode(500);
result.setMsg("该配置历史申请SKU失败,已重新申请!"+"PLMCode:"+applySkuCodeResultDto.getCode()+"PLMmsg:"+applySkuCodeResultDto.getMsg());
result.setData(applySkuCodeResultDto);
return result;
}
} else {
superBomSkuInfoMapper.updateSkuStatus(superBomSkuInfo);
result.setMsg(applySkuCodeResultDto.getMsg());
result.setCode(applySkuCodeResultDto.getCode());
return result;
}
}
} else {
//撞配失败赋值false
flag = false;
}
}
}else{
} else {
//根据 政采 模式 品牌 superbom 查询sku主信息 没有查询到信息
//撞配不通过 保存SKU信息&config信息 调用申请SKU接口 applySkuCode
superBomSkuInfo.setId(sequence.nextId());
superBomSkuInfoMapper.saveSkuInfo(superBomSkuInfo);
......@@ -395,7 +443,7 @@ public class IntegrateServiceImpl implements IntegrateService {
ApplySkuCodeResultDto.data data = applySkuCodeResultDto.getData();
data.setConfigId(superBomSkuInfo.getConfigId());
data.setMsg("已回号");
data.setUser(SecurityService.getPrincipal().getCode());
data.setUser(superBomSkuInfo.getApplyUser());
characteristicMapper.updateSuperBomSkuInfo(data);
superBomSkuInfo.setSkuCode(data.getSkuCode());
superBomSkuInfo.setSkuName(data.getSkuName());
......@@ -404,21 +452,25 @@ public class IntegrateServiceImpl implements IntegrateService {
result.setData(superBomSkuInfo);
return result;
} else {
superBomSkuInfoMapper.updateSkuStatus(superBomSkuInfo);
result.setCode(applySkuCodeResultDto.getCode());
result.setMsg("调用PLM申请回号失败");
result.setMsg(applySkuCodeResultDto.getMsg());
result.setData(applySkuCodeResultDto);
return result;
}
} else {
superBomSkuInfoMapper.updateSkuStatus(superBomSkuInfo);
result.setMsg(applySkuCodeResultDto.getMsg());
result.setCode(applySkuCodeResultDto.getCode());
return result;
}
}
//3.申请SKU->验证配置是否存在->不存在->保存配置信息->申请SKU->返回SKU信息
//撞配不通过 保存SKU信息&config信息 调用申请SKU接口 applySkuCode
if (flag.equals(false)) {
superBomSkuInfo.setId(sequence.nextId());
superBomSkuInfo.setApplyUser(SecurityService.getPrincipal().getCode());
superBomSkuInfoMapper.saveSkuInfo(superBomSkuInfo);
List<SuperBomSkuConfigInfo> characteristicList = superBomSkuInfo.getCharacteristicList();
characteristicList.forEach(item -> {
......@@ -435,7 +487,7 @@ public class IntegrateServiceImpl implements IntegrateService {
ApplySkuCodeResultDto.data data = applySkuCodeResultDto.getData();
data.setConfigId(superBomSkuInfo.getConfigId());
data.setMsg("已回号");
data.setUser(SecurityService.getPrincipal().getCode());
data.setUser(superBomSkuInfo.getApplyUser());
characteristicMapper.updateSuperBomSkuInfo(data);
superBomSkuInfo.setSkuCode(data.getSkuCode());
superBomSkuInfo.setSkuName(data.getSkuName());
......@@ -444,12 +496,14 @@ public class IntegrateServiceImpl implements IntegrateService {
result.setData(superBomSkuInfo);
return result;
} else {
superBomSkuInfoMapper.updateSkuStatus(superBomSkuInfo);
result.setCode(applySkuCodeResultDto.getCode());
result.setMsg("调用PLM申请回号失败");
result.setMsg(applySkuCodeResultDto.getMsg());
result.setData(applySkuCodeResultDto);
return result;
}
} else {
superBomSkuInfoMapper.updateSkuStatus(superBomSkuInfo);
result.setMsg(applySkuCodeResultDto.getMsg());
result.setCode(applySkuCodeResultDto.getCode());
return result;
......@@ -462,7 +516,7 @@ public class IntegrateServiceImpl implements IntegrateService {
}
}else{
} else {
result.setMsg("是否政采/模式/产品编码/品牌是否,不能为空!");
result.setCode(500);
result.setData(superBomSkuInfo);
......@@ -479,10 +533,10 @@ public class IntegrateServiceImpl implements IntegrateService {
//撞配
SuperBomSkuInfo returnSkuInfo = new SuperBomSkuInfo();
GetProductOutDto result = new GetProductOutDto();
superBomSkuInfo.setApplyUser("CRM");
Object ob = GetSKUByConfigInfo(superBomSkuInfo);
boolean flag = ob instanceof GetProductOutDto;
if(flag){
if (flag) {
Object o = JSONObject.toJSON(ob);
Map<String, Object> map = (Map<String, Object>) o;
Integer code = (Integer) map.get("code");
......@@ -490,14 +544,14 @@ public class IntegrateServiceImpl implements IntegrateService {
JSONObject data = (JSONObject) map.get("data");
result.setCode(200);
result.setData(data);
}else{
} else {
result.setCode(code);
result.setMsg((String) map.get("msg"));
result.setData(superBomSkuInfo);
}
return result;
}else{
GetProductOutDto ss = (GetProductOutDto)ob;
} else {
GetProductOutDto ss = (GetProductOutDto) ob;
result.setCode(ss.getCode());
result.setMsg(ss.getMsg());
return result;
......@@ -529,10 +583,10 @@ public class IntegrateServiceImpl implements IntegrateService {
GetProductOutDto result = new GetProductOutDto();
UserInfo getOne = userInfoMapper.getUser(userinfo);
if (!ObjectUtils.isEmpty(getOne)) {
String md5Str = MD5Util.getMD5Str(getOne.getPassword()+"_unis_cpq_"+getOne.getUserCode());
String md5Str = MD5Util.getMD5Str(getOne.getPassword() + "_unis_cpq_" + getOne.getUserCode());
String doubleMd5 = MD5Util.getMD5Str(md5Str);
result.setData(doubleMd5);
redisHelper.set("unis_cpq:"+getOne.getUserCode()+"_"+getOne.getPassword(),doubleMd5,86400);
redisHelper.set("unis_cpq:" + getOne.getUserCode() + "_" + getOne.getPassword(), doubleMd5, 86400);
} else {
result.setMsg("用户不存在/密码错误");
result.setCode(500);
......@@ -752,6 +806,7 @@ public class IntegrateServiceImpl implements IntegrateService {
ArrayList<SuperBomSkuConfigInfo> configs = new ArrayList<>();
superBomSkuInfo.setSuperBomCode(cpnList.getH3cPn());
superBomSkuInfo.setConfigId(cpnList.getConfigId());
superBomSkuInfo.setApplyUser("H3C");
superBomSkuInfo = (SuperBomSkuInfo) superBomSkuInfoMapper.getSkuInfo(superBomSkuInfo);
for (GetSKUByH3CConfigInfo.KeyValues keyValues : selectedCharacteristicList) {
SuperBomSkuConfigInfo superBomSkuConfigInfo = superBomSkuInfoMapper.getConfigInfoList(cpnList.getConfigId(), keyValues.getH3cVCode());
......@@ -820,10 +875,11 @@ public class IntegrateServiceImpl implements IntegrateService {
@Override
public Object saveSukInfo(SuperBomSkuInfo superBomSkuInfo) {
superBomSkuInfo.setApplyUser("CRM");
GetProductOutDto result = new GetProductOutDto();
Object ob = GetSKUByConfigInfo(superBomSkuInfo);
boolean flag = ob instanceof GetProductOutDto;
if(flag) {
if (flag) {
Object o = JSONObject.toJSON(ob);
Map<String, Object> map = (Map<String, Object>) o;
Integer code = (Integer) map.get("code");
......@@ -831,7 +887,7 @@ public class IntegrateServiceImpl implements IntegrateService {
JSONObject data = (JSONObject) map.get("data");
result.setCode(200);
result.setData(data);
}else{
} else {
result.setCode(code);
result.setMsg((String) map.get("msg"));
result.setData(map.get("data"));
......
......@@ -25,6 +25,9 @@
,apply_status
,sku_code
,sku_name
,apply_user
,apply_time
,description_bom
,id
) values (
#{productClassCode},
......@@ -48,6 +51,9 @@
#{applyStatus},
#{skuCode},
#{skuName},
#{applyUser},
now(),
#{descriptionBom},
#{id}
)
</insert>
......@@ -113,6 +119,7 @@
</if>
</where>
order by a.apply_time desc
</select>
<update id="updateSkuInfo">
......@@ -190,4 +197,8 @@
h3c_v_Value
from super_bom_sku_config_info where config_id = #{configId}
</select>
<update id="updateSkuStatus">
update super_bom_sku_info set apply_status = '未回号' , apply_user = #{applyUser} , apply_time = now() where config_id = #{configId}
</update>
</mapper>
\ No newline at end of file
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