gongchunyi
8 小时以前 19effb2444eaf331f61fd0d43d3735f8d1baf768
src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
@@ -27,7 +27,7 @@
    @Transactional
    public Boolean addProductStructureDto(ProductStructureDto dto) {
        Long bomId = dto.getBomId();
        Integer bomId = dto.getBomId();
        //  将树扁平化
        List<ProductStructureDto> flatDtoList = new ArrayList<>();
@@ -86,17 +86,27 @@
        //  真实的父节点 ID
        Long realParentId;
        for (ProductStructureDto psDto : flatDtoList) {
            if (psDto.getId() == null && psDto.getParentTempId() != null) {
            String parentTempId = psDto.getParentTempId();
            if (psDto.getId() == null && parentTempId != null && !parentTempId.isEmpty()) {
                ProductStructure child = tempEntityMap.get(psDto.getTempId());
                if (tempEntityMap.containsKey(psDto.getParentTempId())) {
                if (tempEntityMap.containsKey(parentTempId)) {
                    // 父节点是新节点
                    realParentId = tempEntityMap.get(psDto.getParentTempId()).getId();
                    realParentId = tempEntityMap.get(parentTempId).getId();
                } else {
                    // 父节点是老节点
                    realParentId = Long.valueOf(psDto.getParentTempId());
                    try {
                        realParentId = Long.valueOf(parentTempId);
                    } catch (NumberFormatException e) {
                        realParentId = 0L;
                    }
                }
                child.setParentId(realParentId);
                parentFixList.add(child);
            } else if (psDto.getId() == null) {
                // 如果 parentTempId 为空,则是顶级节点
                ProductStructure child = tempEntityMap.get(psDto.getTempId());
                child.setParentId(0L);
                parentFixList.add(child);
            }
        }
@@ -104,7 +114,6 @@
        if (!parentFixList.isEmpty()) {
            this.updateBatchById(parentFixList);
        }
        if (!updateList.isEmpty()) {
            this.updateBatchById(updateList);
        }
@@ -130,8 +139,8 @@
    @Override
    public List<ProductStructureDto> listBybomId(Long bomId) {
        List<ProductStructureDto> list = productStructureMapper.listBybomId(bomId);
    public List<ProductStructureDto> listByBomId(Integer bomId) {
        List<ProductStructureDto> list = productStructureMapper.listByBomId(bomId);
        Map<Long, ProductStructureDto> map = new HashMap<>();
        for (ProductStructureDto node : list) {