maven
2026-02-03 43e3fe43675a68c375313abfbeee84ad60e6d9e3
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -437,7 +437,7 @@
        for (ProcurementPageDto dto : procurementPageDtos) {
            // 根据采购台账ID筛选对应的出库记录
            List<ProcurementRecordOut> collect1 = procurementRecords.stream()
                    .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
                    .filter(item -> item.getProcurementRecordStorageId().equals(dto.getId()))
                    .collect(Collectors.toList());
            // 如果没有相关的出库记录,跳过该条数据
@@ -478,20 +478,6 @@
    @Override
    public IPage<CustomStorage> listPageByCustom(Page page, CustomStorage customStorage) {
//        LambdaQueryWrapper<CustomStorage> customStorageLambdaQueryWrapper = new LambdaQueryWrapper<>();
//        if(customStorage != null){
//            if(!StringUtils.isEmpty(customStorage.getSupplierName())){
//                customStorageLambdaQueryWrapper.like(CustomStorage::getSupplierName, customStorage.getSupplierName());
//            }
//            // 筛选入库时间
//            if(customStorage.getTimeStr() != null){
//                customStorageLambdaQueryWrapper.eq(CustomStorage::getInboundDate, customStorage.getTimeStr());
//            }
//            if(!StringUtils.isEmpty(customStorage.getProductCategory())){
//                customStorageLambdaQueryWrapper.like(CustomStorage::getProductCategory, customStorage.getProductCategory());
//            }
//        }
//        customStorageLambdaQueryWrapper.orderByDesc(CustomStorage::getInboundDate);
        IPage<CustomStorage> procurementPageDtoIPage = customStorageMapper.listPageByCustom(page, customStorage);
        procurementPageDtoIPage.getRecords().forEach(item -> item.setInboundNum0(item.getInboundNum()));
        List<CustomStorage> procurementPageDtos = procurementPageDtoIPage.getRecords();
@@ -537,38 +523,38 @@
        List<ProcurementPageDtoCopy> procurementPageDtoCopyList = procurementPageDtoCopyIPage.getRecords();
        // 计算待入库数量
        // 查询采购记录已入库数量
        List<Integer> collect = procurementPageDtoCopyList.stream().map(ProcurementPageDtoCopy::getId).collect(Collectors.toList());
        if(CollectionUtils.isEmpty( collect)){
            return procurementPageDtoCopyIPage;
        }
        LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
        procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
        procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getType, 2);
        List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
        if(CollectionUtils.isEmpty( procurementRecords)){
            return procurementPageDtoCopyIPage;
        }
//        List<Integer> collect = procurementPageDtoCopyList.stream().map(ProcurementPageDtoCopy::getId).collect(Collectors.toList());
//        if(CollectionUtils.isEmpty( collect)){
//            return procurementPageDtoCopyIPage;
//        }
//        LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
//        procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
//        procurementRecordLambdaQueryWrapper.eq(ProcurementRecordOut::getType, 2);
//        List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
//        if(CollectionUtils.isEmpty( procurementRecords)){
//            return procurementPageDtoCopyIPage;
//        }
        for (ProcurementPageDtoCopy dto : procurementPageDtoCopyList) {
            // 根据采购台账ID筛选对应的出库记录
            List<ProcurementRecordOut> collect1 = procurementRecords.stream()
                    .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
                    .collect(Collectors.toList());
//            List<ProcurementRecordOut> collect1 = procurementRecords.stream()
//                    .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
//                    .collect(Collectors.toList());
            // 如果没有相关的出库记录,跳过该条数据
            if(CollectionUtils.isEmpty(collect1)){
                dto.setInboundNum0(dto.getInboundNum());
                dto.setTotalInboundNum(BigDecimal.ZERO);
                continue;
            }
//            if(CollectionUtils.isEmpty(collect1)){
//                dto.setInboundNum0(dto.getInboundNum());
//                dto.setTotalInboundNum(BigDecimal.ZERO);
//                continue;
//            }
            // 计算已出库数量总和,并设置待出库数量
            BigDecimal totalInboundNum = collect1.stream()
                    .map(ProcurementRecordOut::getInboundNum)
                    .reduce(BigDecimal.ZERO, BigDecimal::add);
//            BigDecimal totalInboundNum = collect1.stream()
//                    .map(ProcurementRecordOut::getInboundNum)
//                    .reduce(BigDecimal.ZERO, BigDecimal::add);
            // 出库数量 = 总数量 - 待出库数量
            dto.setTotalInboundNum(totalInboundNum);
            dto.setTotalInboundNum(dto.getInboundNum().subtract(dto.getInboundNum0()));
            // 待出库数量 = 总数量 - 已出库数量
            dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
//            dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
            // 库存价值
            if(dto.getUnitPrice() != null){
                dto.setTotalPrice(dto.getTotalInboundNum().multiply(dto.getUnitPrice()));