maven
2026-02-03 43e3fe43675a68c375313abfbeee84ad60e6d9e3
yys  成品库存修改
已修改2个文件
50 ■■■■ 文件已修改
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -523,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()));
src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -308,7 +308,7 @@
        SUM(t1.total_price) AS totalPrice,
        t1.unit_price,
        SUM(t1.inbound_num) AS inboundNum,
        SUM(t1.inbound_num) AS inboundNum0,
        (SUM(t1.inbound_num) - IFNULL(SUM(t4.total_outbound_num), 0)) AS inboundNum0,
        MAX(t1.create_time) AS create_time,
        MAX(t1.update_time) AS update_time,
        GROUP_CONCAT(DISTINCT t1.create_by) AS create_by,