gaoluyang
6 天以前 7bd10d34e8a8dc2437ec8551eb511e37634d7306
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productissue/MesWmProductIssueLineController.java
@@ -122,10 +122,23 @@
        if (issue.getWorkOrderId() == null) {
            return success(Collections.emptyList());
        }
        // 2. 获取工单 BOM 物料(同一物料跨工序多次投料时,需求量按物料汇总)
        List<MesProWorkOrderBomDO> bomList = workOrderBomService.getWorkOrderBomListByWorkOrderId(issue.getWorkOrderId());
        return success(buildBomItemList(issue.getWorkOrderId()));
    }
    @GetMapping("/bom-item-list-by-work-order")
    @Operation(summary = "获得生产工单 BOM 物料列表(按工单编号)",
            description = "用于补领辅料等场景直接按工单获取 BOM 物料,无需先有领料单")
    @Parameter(name = "workOrderId", description = "生产工单编号", required = true, example = "1")
    public CommonResult<List<MesWmProductIssueBomItemRespVO>> getBomItemListByWorkOrderId(
            @RequestParam("workOrderId") Long workOrderId) {
        return success(buildBomItemList(workOrderId));
    }
    private List<MesWmProductIssueBomItemRespVO> buildBomItemList(Long workOrderId) {
        // 1. 获取工单 BOM 物料(同一物料跨工序多次投料时,需求量按物料汇总)
        List<MesProWorkOrderBomDO> bomList = workOrderBomService.getWorkOrderBomListByWorkOrderId(workOrderId);
        if (CollUtil.isEmpty(bomList)) {
            return success(Collections.emptyList());
            return Collections.emptyList();
        }
        Map<Long, BigDecimal> requiredQtyMap = new LinkedHashMap<>();
        for (MesProWorkOrderBomDO bom : bomList) {
@@ -149,7 +162,7 @@
                    unit -> vo.setUnitMeasureName(unit.getName()));
            result.add(vo);
        });
        return success(result);
        return result;
    }
    @GetMapping("/returnable-list")