gaoluyang
7 天以前 c6015b2acba3e4a60045f7f3d275618cc9e554e7
fix(production): 报工参数补全过滤空工单,修复报工台账查询报错

历史报工单可能没有关联生产工单,production_operation_task_id 为 NULL,
Collectors.toMap 不接受 null 值会抛 NPE,导致报工台账列表查询 500。
两处 toMap 前过滤空值,后续逻辑本身已兼容取不到工单的情况。

Co-Authored-By: Claude Code <noreply@anthropic.com>
已修改1个文件
4 ■■■■■ 文件已修改
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -155,6 +155,8 @@
        Map<Long, Long> mainIdToTaskIdMap = mainList.stream()
                .filter(Objects::nonNull)
                .filter(item -> item.getId() != null)
                // 历史报工可能没挂工单,toMap 不允许 null 值,缺工单的直接跳过
                .filter(item -> item.getProductionOperationTaskId() != null)
                .collect(Collectors.toMap(ProductionProductMain::getId,
                        ProductionProductMain::getProductionOperationTaskId, (left, right) -> left));
        Set<Long> taskIdSet = mainIdToTaskIdMap.values().stream()
@@ -175,6 +177,8 @@
        Map<Long, Long> taskIdToRoutingOperationIdMap = taskList.stream()
                .filter(Objects::nonNull)
                .filter(item -> item.getId() != null)
                // 同上:工单没关联订单工序时跳过,避免 toMap 空值 NPE
                .filter(item -> item.getProductionOrderRoutingOperationId() != null)
                .collect(Collectors.toMap(ProductionOperationTask::getId,
                        ProductionOperationTask::getProductionOrderRoutingOperationId, (left, right) -> left));
        Set<Long> routingOperationIdSet = taskIdToRoutingOperationIdMap.values().stream()