【批量替代BOM】导入SAP,改成只导入单层
This commit is contained in:
parent
2d1dc93521
commit
b87a02f892
|
|
@ -69,7 +69,7 @@ public class BatchBomApi extends BaseApi {
|
|||
if (CollUtil.isNotEmpty(addRowIds)) {
|
||||
addRowIds.forEach(rootRowId -> {
|
||||
BomNewEbomExportToSAP exportToSAP = new BomNewEbomExportToSAP();
|
||||
errorMsgVOS.addAll(exportToSAP.export(rootRowId));
|
||||
errorMsgVOS.addAll(exportToSAP.export(rootRowId, true));
|
||||
});
|
||||
}
|
||||
return ResultVO.success(errorMsgVOS);
|
||||
|
|
@ -86,7 +86,7 @@ public class BatchBomApi extends BaseApi {
|
|||
PbomImportToSAPQuery query = new PbomImportToSAPQuery();
|
||||
query.setRootBomRowId(rootRowId);
|
||||
query.setIsForSale(false);
|
||||
errorMsgVOS.addAll(bomNewPbomParentService.importToSAP2(query));
|
||||
errorMsgVOS.addAll(bomNewPbomParentService.importToSAP2(query, true));
|
||||
});
|
||||
}
|
||||
return ResultVO.success(errorMsgVOS);
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ public class EbomApi extends BaseApi {
|
|||
errorMsgVOS.addAll(bomNewEbomParentService.convertToPBom(paramDto));
|
||||
paramDto.getBomRowIds().forEach(rootRowId -> {
|
||||
BomNewEbomExportToSAP exportToSAP = new BomNewEbomExportToSAP();
|
||||
errorMsgVOS.addAll(exportToSAP.export(rootRowId));
|
||||
errorMsgVOS.addAll(exportToSAP.export(rootRowId, false));
|
||||
});
|
||||
|
||||
return ResultVO.success(errorMsgVOS);
|
||||
|
|
@ -469,7 +469,7 @@ public class EbomApi extends BaseApi {
|
|||
VUtils.isTure(rootBomRowIds.size() > 1).throwMessage("每次只能导入1条");
|
||||
// return ResultVO.success(bomNewEbomParentService.importToSAP(rootBomRowIds.get(0)));
|
||||
BomNewEbomExportToSAP exportToSAP = new BomNewEbomExportToSAP();
|
||||
return ResultVO.success(exportToSAP.export(rootBomRowIds.get(0)));
|
||||
return ResultVO.success(exportToSAP.export(rootBomRowIds.get(0), false));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -336,7 +336,7 @@ public class PBomApi extends BaseApi {
|
|||
.last(" order by current_version desc limit 1").one();
|
||||
query.setRootBomRowId(parentEnt.getRowId());
|
||||
}
|
||||
return ResultVO.success(bomNewPbomParentService.importToSAP2(query));
|
||||
return ResultVO.success(bomNewPbomParentService.importToSAP2(query, false));
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -389,7 +389,7 @@ public class PBomApi extends BaseApi {
|
|||
@PostMapping("importToSAP")
|
||||
@ApiOperation("导入到SAP")
|
||||
public ResultVO<List<OperationErrorMsgVO>> importToSAP(@Valid @RequestBody @NotNull PbomImportToSAPQuery query) {
|
||||
return ResultVO.success(bomNewPbomParentService.importToSAP2(query));
|
||||
return ResultVO.success(bomNewPbomParentService.importToSAP2(query, false));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public class BomNewEbomExportToSAP {
|
|||
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, boolean singleLevel) {
|
||||
BomNewEbomParentEntity root = bomNewEbomParentService.getById(rootBomRowId);
|
||||
// VUtils.isTure(Objects.isNull(root)).throwMessage("数据不存在");
|
||||
if (Objects.isNull(root)) return Collections.emptyList();
|
||||
|
|
@ -78,6 +78,9 @@ public class BomNewEbomExportToSAP {
|
|||
sapDto.setI_STLAN("2");
|
||||
sapDto.setI_EMPNO(root.getCreatedBy());
|
||||
sapDto.setT1(Convert.toList(T1DTO.class, this.children.stream().filter(c -> !c.isIgnore()).collect(Collectors.toList())));
|
||||
if (singleLevel) {
|
||||
filterSingleLevelData(root.getMaterialNo(), sapDto);
|
||||
}
|
||||
liErrMsg = SpringUtil.getBean(SapOpUtilService.class).importToSapV2(sapDto, null);
|
||||
if (CollUtil.isEmpty(liErrMsg)) {
|
||||
state = SapStatusEnum.PUB_SUCCESS;
|
||||
|
|
@ -102,6 +105,15 @@ public class BomNewEbomExportToSAP {
|
|||
return liErrMsg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 单层导入,过滤出指定父级物料号的子级即可
|
||||
* @param materialNo 父级物料号
|
||||
*/
|
||||
private void filterSingleLevelData(String materialNo, ImportSapParamDTO sapDto) {
|
||||
List<T1DTO> t1 = sapDto.getT1();
|
||||
sapDto.setT1(t1.stream().filter(item -> item.getMATNR().equals(materialNo)).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建child数据发包编号
|
||||
* @param p 上级节点的parent
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP {
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<OperationErrorMsgVO> export(Long rootBomRowId) {
|
||||
public List<OperationErrorMsgVO> export(Long rootBomRowId, boolean singleLevel) {
|
||||
BomNewPbomParentEntity root = bomNewPbomParentService.getById(rootBomRowId);
|
||||
is21 = root.getMaterialNo().startsWith("21");
|
||||
is31 = root.getMaterialNo().startsWith("31");
|
||||
|
|
@ -114,6 +114,9 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP {
|
|||
sapDto.setI_STLAN("1");
|
||||
sapDto.setI_EMPNO(root.getCreatedBy());
|
||||
sapDto.setT1(Convert.toList(T1DTO.class, this.children.stream().filter(c -> !c.isIgnore()).collect(Collectors.toList())));
|
||||
if (singleLevel) {
|
||||
filterSingleLevelData(root.getMaterialNo(), sapDto);
|
||||
}
|
||||
liErrMsg = SpringUtil.getBean(SapOpUtilService.class).importToSapV2(sapDto, null);
|
||||
LOGGER.debug("本次导入到sap数量共{}个,其中{}个有错误", sapDto.getT1().size(), liErrMsg.size());
|
||||
if (CollUtil.isEmpty(liErrMsg)) {
|
||||
|
|
@ -139,6 +142,15 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP {
|
|||
return liErrMsg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 单层导入,过滤出指定父级物料号的子级即可
|
||||
* @param materialNo 父级物料号
|
||||
*/
|
||||
private void filterSingleLevelData(String materialNo, ImportSapParamDTO sapDto) {
|
||||
List<T1DTO> t1 = sapDto.getT1();
|
||||
sapDto.setT1(t1.stream().filter(item -> item.getMATNR().equals(materialNo)).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
private Long getZFBBomRowId(List<BomNewPbomChildEntity> children) {
|
||||
Long ddpRowId = null;
|
||||
//电控系统的无须增加 直发包parent记录 by 10002327 240918
|
||||
|
|
@ -378,7 +390,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP {
|
|||
.one();
|
||||
VUtils.isTure(Objects.isNull(pfhb)).throwMessage("没有需要导入的数据");
|
||||
|
||||
List<OperationErrorMsgVO> errorMsgVOS = export(pfhb.getRowId());
|
||||
List<OperationErrorMsgVO> errorMsgVOS = export(pfhb.getRowId(), false);
|
||||
if (CollUtil.isNotEmpty(errorMsgVOS)) {
|
||||
//如果导入SAP出错了,得将该bom提升为用户根节点,以便用户手动尝试导入到SAP去
|
||||
pfhb.setUserRootIs(1);
|
||||
|
|
|
|||
|
|
@ -1433,13 +1433,13 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
|
|||
}
|
||||
}
|
||||
|
||||
public List<OperationErrorMsgVO> importToSAP2(PbomImportToSAPQuery query) {
|
||||
public List<OperationErrorMsgVO> importToSAP2(PbomImportToSAPQuery query, boolean singleLevel) {
|
||||
BomNewPbomParentEntity root = getById(query.getRootBomRowId());
|
||||
VUtils.isTure(Objects.isNull(root)).throwMessage("数据不存在");
|
||||
// VUtils.isTure(root.getUserRootIs() != 1 && root.getRootIs() != 1).throwMessage("请选择根节点");
|
||||
|
||||
IBomNewPbomExportToSAP service = new BomNewPbomExportToSAPImpl(query.getIsForSale());
|
||||
return service.export(root.getRowId());
|
||||
return service.export(root.getRowId(), singleLevel);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public interface IBomNewPbomExportToSAP {
|
|||
//
|
||||
// String dateYMD = DateUtil.format(new Date(), "yyyyMMdd");
|
||||
|
||||
List<OperationErrorMsgVO> export(Long rootBomRowId);
|
||||
List<OperationErrorMsgVO> export(Long rootBomRowId, boolean singleLevel);
|
||||
|
||||
/**
|
||||
* 根据直发包编号导入上级物料到SAP
|
||||
|
|
|
|||
Loading…
Reference in New Issue