| | |
| | | @GetMapping("/get") |
| | | @Operation(summary = "获得领料出库单行") |
| | | @Parameter(name = "id", description = "编号", required = true, example = "1024") |
| | | @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") |
| | | public CommonResult<MesWmProductIssueLineRespVO> getProductIssueLine(@RequestParam("id") Long id) { |
| | | MesWmProductIssueLineDO line = issueLineService.getProductIssueLine(id); |
| | | if (line == null) { |
| | |
| | | |
| | | @GetMapping("/page") |
| | | @Operation(summary = "获得领料出库单行分页") |
| | | @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") |
| | | public CommonResult<PageResult<MesWmProductIssueLineRespVO>> getProductIssueLinePage( |
| | | @Valid MesWmProductIssueLinePageReqVO pageReqVO) { |
| | | PageResult<MesWmProductIssueLineDO> pageResult = issueLineService.getProductIssueLinePage(pageReqVO); |
| | |
| | | @GetMapping("/list-by-issue") |
| | | @Operation(summary = "获得领料出库单行列表(按领料单编号)") |
| | | @Parameter(name = "issueId", description = "领料单编号", required = true, example = "1024") |
| | | @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") |
| | | public CommonResult<List<MesWmProductIssueLineRespVO>> getProductIssueLineListByIssueId( |
| | | @RequestParam("issueId") Long issueId) { |
| | | List<MesWmProductIssueLineDO> list = issueLineService.getProductIssueLineListByIssueId(issueId); |
| | |
| | | @Operation(summary = "获得领料出库单可领物料列表", |
| | | description = "仅返回当前领料单对应生产工单 BOM 中的物料,用于新增行物料选择器过滤,避免选择 BOM 之外的物料") |
| | | @Parameter(name = "issueId", description = "领料单编号", required = true, example = "1024") |
| | | @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") |
| | | public CommonResult<List<MesWmProductIssueBomItemRespVO>> getBomItemList(@RequestParam("issueId") Long issueId) { |
| | | // 1. 校验领料单存在,获取关联工单 |
| | | MesWmProductIssueDO issue = issueService.validateProductIssueExists(issueId); |
| | | 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) { |
| | |
| | | unit -> vo.setUnitMeasureName(unit.getName())); |
| | | result.add(vo); |
| | | }); |
| | | return success(result); |
| | | return result; |
| | | } |
| | | |
| | | @GetMapping("/returnable-list") |
| | | @Operation(summary = "获得领料出库单可退料行列表", |
| | | description = "返回指定工单下已完成领料单的可退料行,可退数量 = 已领数量 - 已退数量") |
| | | @Parameter(name = "workOrderId", description = "生产工单ID", required = true, example = "1") |
| | | @PreAuthorize("@ss.hasPermission('mes:wm-product-issue:query')") |
| | | public CommonResult<List<MesWmProductIssueLineReturnableRespVO>> getReturnableList(@RequestParam("workOrderId") Long workOrderId) { |
| | | return success(issueLineService.getReturnableList(workOrderId)); |
| | | } |