fix(pbom): 修复因child表物料分类编码与主物料的物料分类编码不一致导致导入到SAP的排序号错误的问题

This commit is contained in:
曹鹏飞 2024-11-12 08:41:10 +08:00
parent 81846b2cca
commit 32da594565
1 changed files with 17 additions and 13 deletions

View File

@ -370,22 +370,26 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP {
private List<BomNewPbomChildEntity> syncMaterial(List<BomNewPbomChildEntity> children) {
if (CollUtil.isNotEmpty(children)) {
List<BaseMaterialVO> materialVOS = materialMainService.getMaterialBaseInfo(children.stream()
List<String> materialNos = children.stream()
.filter(f -> !StrUtil.equalsIgnoreCase(BomConstant.PROJECT_TYPE_TEMPORARY, f.getProjectType())
&& StrUtil.isNotEmpty(f.getMaterialNo()))
.map(BomNewPbomChildEntity::getMaterialNo).collect(Collectors.toList()));
children.forEach(c -> {
if (!StrUtil.equalsIgnoreCase(BomConstant.PROJECT_TYPE_TEMPORARY, c.getProjectType())
&& StrUtil.isNotEmpty(c.getMaterialNo())) {
BaseMaterialVO materialVO = materialVOS.stream()
.filter(m -> StrUtil.equals(m.getMaterialNo(), c.getMaterialNo()))
.findFirst()
.orElse(null);
if (Objects.nonNull(materialVO)) {
c.setMaterialCategoryCode(materialVO.getMaterialCategoryCode());
.map(BomNewPbomChildEntity::getMaterialNo).collect(Collectors.toList());
if (CollUtil.isNotEmpty(materialNos)) {
List<BaseMaterialVO> materialVOS = materialMainService.getMaterialBaseInfo(materialNos);
children.forEach(c -> {
if (!StrUtil.equalsIgnoreCase(BomConstant.PROJECT_TYPE_TEMPORARY, c.getProjectType())
&& StrUtil.isNotEmpty(c.getMaterialNo())) {
BaseMaterialVO materialVO = materialVOS.stream()
.filter(f -> !StrUtil.equalsIgnoreCase(BomConstant.PROJECT_TYPE_TEMPORARY, f.getProjectType())
&& StrUtil.equals(f.getMaterialNo(), c.getMaterialNo()))
.findFirst()
.orElse(null);
if (Objects.nonNull(materialVO)) {
c.setMaterialCategoryCode(materialVO.getMaterialCategoryCode());
}
}
}
});
});
}
}
return children;
}