【EBOM、PBOM】SAP报错信息转义
This commit is contained in:
parent
f2d556fb92
commit
55900d714e
|
|
@ -356,7 +356,7 @@ public class MaterialSubmitService {
|
||||||
list.add(material);
|
list.add(material);
|
||||||
});
|
});
|
||||||
result.put("List", list);
|
result.put("List", list);
|
||||||
log.error("物料申请-JSON:" + JSONArray.toJSONString(list));
|
log.error("物料申请-JSON:" + JSONArray.toJSONString(result));
|
||||||
HttpUtils httpUtils = new HttpUtils(timeout);
|
HttpUtils httpUtils = new HttpUtils(timeout);
|
||||||
try {
|
try {
|
||||||
String url = NacosConfig.getNacosConfig().getOaUrl();
|
String url = NacosConfig.getNacosConfig().getOaUrl();
|
||||||
|
|
|
||||||
|
|
@ -20,4 +20,13 @@ public enum MateiralStateEnum implements ValueEnum<Integer> {
|
||||||
private final Integer value;
|
private final Integer value;
|
||||||
private final String description;
|
private final String description;
|
||||||
|
|
||||||
|
public static MateiralStateEnum getDescriptionByValue(Integer value) {
|
||||||
|
for (MateiralStateEnum valueEnum : MateiralStateEnum.values()) {
|
||||||
|
if (valueEnum.getValue().equals(value)) {
|
||||||
|
return valueEnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewEbomChildEntity;
|
||||||
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity;
|
import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity;
|
||||||
import com.nflg.product.bomnew.pojo.entity.BomNewSapErrorMsgEntity;
|
import com.nflg.product.bomnew.pojo.entity.BomNewSapErrorMsgEntity;
|
||||||
import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO;
|
import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO;
|
||||||
|
import com.nflg.product.bomnew.util.SapErrorMsgUtil;
|
||||||
import com.nflg.product.bomnew.util.VUtils;
|
import com.nflg.product.bomnew.util.VUtils;
|
||||||
import nflg.product.common.constant.STATE;
|
import nflg.product.common.constant.STATE;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
@ -43,6 +44,7 @@ public class BomNewEbomExportToSAP {
|
||||||
private final BomNewEbomParentService bomNewEbomParentService = SpringUtil.getBean(BomNewEbomParentService.class);
|
private final BomNewEbomParentService bomNewEbomParentService = SpringUtil.getBean(BomNewEbomParentService.class);
|
||||||
private final BomNewEbomChildService bomNewEbomChildService = SpringUtil.getBean(BomNewEbomChildService.class);
|
private final BomNewEbomChildService bomNewEbomChildService = SpringUtil.getBean(BomNewEbomChildService.class);
|
||||||
private final BomNewSapErrorMsgService bomNewSapErrorMsgService = SpringUtil.getBean(BomNewSapErrorMsgService.class);
|
private final BomNewSapErrorMsgService bomNewSapErrorMsgService = SpringUtil.getBean(BomNewSapErrorMsgService.class);
|
||||||
|
private final SapErrorMsgUtil sapErrorMsgUtil = SpringUtil.getBean(SapErrorMsgUtil.class);
|
||||||
|
|
||||||
public List<OperationErrorMsgVO> export(Long rootBomRowId) {
|
public List<OperationErrorMsgVO> export(Long rootBomRowId) {
|
||||||
BomNewEbomParentEntity root = bomNewEbomParentService.getById(rootBomRowId);
|
BomNewEbomParentEntity root = bomNewEbomParentService.getById(rootBomRowId);
|
||||||
|
|
@ -122,6 +124,7 @@ public class BomNewEbomExportToSAP {
|
||||||
.eq(BomNewSapErrorMsgEntity::getTargetRowId, rootBomRowId));
|
.eq(BomNewSapErrorMsgEntity::getTargetRowId, rootBomRowId));
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(liErrMsg)) {
|
if (CollUtil.isNotEmpty(liErrMsg)) {
|
||||||
|
sapErrorMsgUtil.translateErrorMsg(liErrMsg);
|
||||||
BomNewSapErrorMsgEntity sapErrorMsgEntity = new BomNewSapErrorMsgEntity();
|
BomNewSapErrorMsgEntity sapErrorMsgEntity = new BomNewSapErrorMsgEntity();
|
||||||
sapErrorMsgEntity.setTargetRowId(rootBomRowId);
|
sapErrorMsgEntity.setTargetRowId(rootBomRowId);
|
||||||
sapErrorMsgEntity.setType(0);
|
sapErrorMsgEntity.setType(0);
|
||||||
|
|
|
||||||
|
|
@ -3040,6 +3040,12 @@ public class BomNewEbomParentService extends ServiceImpl<BomNewEbomParentMapper,
|
||||||
}
|
}
|
||||||
updateParent.setChangeDesc(param.getChangeDesc());
|
updateParent.setChangeDesc(param.getChangeDesc());
|
||||||
this.updateById(updateParent);
|
this.updateById(updateParent);
|
||||||
|
// PBOM工作表回写通知单号,升版说明
|
||||||
|
pBomParentService.lambdaUpdate()
|
||||||
|
.set(BomNewPbomParentEntity::getNoticeNums, param.getNumType() == 2 ? param.getNoticeNums() : autoCode)
|
||||||
|
.set(BomNewPbomParentEntity::getChangeDesc, param.getChangeDesc())
|
||||||
|
.eq(BomNewPbomParentEntity::getSourceRowId, versionList.get(0).getRowId())
|
||||||
|
.update();
|
||||||
|
|
||||||
// 新建通知单
|
// 新建通知单
|
||||||
if (param.getNumType() == 1) {
|
if (param.getNumType() == 1) {
|
||||||
|
|
|
||||||
|
|
@ -90,8 +90,10 @@ public class BomNewNoticeNumService extends ServiceImpl<BomNewNoticeNumMapper, B
|
||||||
saveDetail2List.forEach(saveDetail2 -> {
|
saveDetail2List.forEach(saveDetail2 -> {
|
||||||
Map<String, Object> bom = new HashMap<>();
|
Map<String, Object> bom = new HashMap<>();
|
||||||
bom.put("parentMaterialNo", saveDetail2.getParentMaterialNo()); // 父级编码
|
bom.put("parentMaterialNo", saveDetail2.getParentMaterialNo()); // 父级编码
|
||||||
|
bom.put("parentMaterialDesc", saveDetail2.getParentMaterialDesc()); // 父级描述
|
||||||
bom.put("orderNum", saveDetail2.getOrderNum()); // BOM行编号
|
bom.put("orderNum", saveDetail2.getOrderNum()); // BOM行编号
|
||||||
bom.put("materialNo", saveDetail2.getMaterialNo()); // 编码
|
bom.put("materialNo", saveDetail2.getMaterialNo()); // 编码
|
||||||
|
bom.put("materialDesc", saveDetail2.getMaterialDesc()); // 描述
|
||||||
bom.put("changeContent", saveDetail2.getChangeContent()); // 变更内容
|
bom.put("changeContent", saveDetail2.getChangeContent()); // 变更内容
|
||||||
bomList2.add(bom);
|
bomList2.add(bom);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity;
|
||||||
import com.nflg.product.bomnew.pojo.entity.BomNewSapErrorMsgEntity;
|
import com.nflg.product.bomnew.pojo.entity.BomNewSapErrorMsgEntity;
|
||||||
import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO;
|
import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO;
|
||||||
import com.nflg.product.bomnew.util.BomUtil;
|
import com.nflg.product.bomnew.util.BomUtil;
|
||||||
|
import com.nflg.product.bomnew.util.SapErrorMsgUtil;
|
||||||
import com.nflg.product.bomnew.util.VUtils;
|
import com.nflg.product.bomnew.util.VUtils;
|
||||||
import nflg.product.common.constant.STATE;
|
import nflg.product.common.constant.STATE;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
@ -51,6 +52,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP {
|
||||||
private final BomNewPbomParentService bomNewPbomParentService = SpringUtil.getBean(BomNewPbomParentService.class);
|
private final BomNewPbomParentService bomNewPbomParentService = SpringUtil.getBean(BomNewPbomParentService.class);
|
||||||
private final BomNewPbomChildService bomNewPbomChildService = SpringUtil.getBean(BomNewPbomChildService.class);
|
private final BomNewPbomChildService bomNewPbomChildService = SpringUtil.getBean(BomNewPbomChildService.class);
|
||||||
private final BomNewSapErrorMsgService bomNewSapErrorMsgService = SpringUtil.getBean(BomNewSapErrorMsgService.class);
|
private final BomNewSapErrorMsgService bomNewSapErrorMsgService = SpringUtil.getBean(BomNewSapErrorMsgService.class);
|
||||||
|
private final SapErrorMsgUtil sapErrorMsgUtil = SpringUtil.getBean(SapErrorMsgUtil.class);
|
||||||
|
|
||||||
public BomNewPbomExportToSAPImpl(boolean isForSale) {
|
public BomNewPbomExportToSAPImpl(boolean isForSale) {
|
||||||
this.isForSale = isForSale;
|
this.isForSale = isForSale;
|
||||||
|
|
@ -155,6 +157,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP {
|
||||||
.eq(BomNewSapErrorMsgEntity::getTargetRowId, rootBomRowId));
|
.eq(BomNewSapErrorMsgEntity::getTargetRowId, rootBomRowId));
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(liErrMsg)) {
|
if (CollUtil.isNotEmpty(liErrMsg)) {
|
||||||
|
sapErrorMsgUtil.translateErrorMsg(liErrMsg);
|
||||||
BomNewSapErrorMsgEntity sapErrorMsgEntity = new BomNewSapErrorMsgEntity();
|
BomNewSapErrorMsgEntity sapErrorMsgEntity = new BomNewSapErrorMsgEntity();
|
||||||
sapErrorMsgEntity.setTargetRowId(rootBomRowId);
|
sapErrorMsgEntity.setTargetRowId(rootBomRowId);
|
||||||
sapErrorMsgEntity.setType(1);
|
sapErrorMsgEntity.setType(1);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
package com.nflg.product.bomnew.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.nflg.product.bomnew.constant.MateiralStateEnum;
|
||||||
|
import com.nflg.product.bomnew.pojo.entity.MaterialMainEntity;
|
||||||
|
import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO;
|
||||||
|
import com.nflg.product.bomnew.service.MaterialMainService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class SapErrorMsgUtil {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MaterialMainService materialMainService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转义错误信息
|
||||||
|
* @param liErrMsg
|
||||||
|
*/
|
||||||
|
public void translateErrorMsg(List<OperationErrorMsgVO> liErrMsg) {
|
||||||
|
// [{"msg":"未选定 BOM 项目(工厂Z0)的物料状态 Block for all usage 1010","primaryKey":"2100048422的子级F项:2100048422"}]
|
||||||
|
// 转义成 [{"msg":"2100048422物料状态可能为冻结,实际为:XX","primaryKey":"2100048422的子级F项:2100048422"}]
|
||||||
|
List<OperationErrorMsgVO> blockMsgList = liErrMsg.stream().filter(errMsg -> ObjectUtil.isNotEmpty(errMsg.msg) && errMsg.msg.contains("Block for all usage")).collect(Collectors.toList());
|
||||||
|
List<String> filterMaterialNos = new ArrayList<>();
|
||||||
|
Map<String, String> materialNoStateMap = new HashMap<>();
|
||||||
|
if (CollUtil.isNotEmpty(blockMsgList)) {
|
||||||
|
blockMsgList.forEach(item -> {
|
||||||
|
if (ObjectUtil.isNotEmpty(item.primaryKey) && item.primaryKey.length() >= 10) {
|
||||||
|
filterMaterialNos.add(item.primaryKey.substring(item.primaryKey.length() - 10));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(filterMaterialNos)) {
|
||||||
|
List<MaterialMainEntity> materialList = materialMainService.lambdaQuery().in(MaterialMainEntity::getMaterialNo, filterMaterialNos).list();
|
||||||
|
materialList.forEach(item -> {
|
||||||
|
MateiralStateEnum stateEnum = MateiralStateEnum.getDescriptionByValue(item.getMaterialState());
|
||||||
|
materialNoStateMap.put(item.getMaterialNo(), ObjectUtil.isNotEmpty(stateEnum) ? stateEnum.getDescription() : "");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
liErrMsg.forEach(errMsg -> {
|
||||||
|
if (ObjectUtil.isNotEmpty(errMsg.msg) && errMsg.msg.contains("Block for all usage") &&
|
||||||
|
ObjectUtil.isNotEmpty(errMsg.primaryKey) && errMsg.primaryKey.length() >= 10) {
|
||||||
|
String materialNo = errMsg.primaryKey.substring(errMsg.primaryKey.length() - 10);
|
||||||
|
errMsg.msg = materialNo + "物料状态可能为冻结,实际为:" + materialNoStateMap.get(materialNo);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue