package com.ruoyi.production.controller;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.bean.dto.ProductionOrderPickDto;
import com.ruoyi.production.bean.vo.ProductionOrderPickVo;
import com.ruoyi.production.service.ProductionOrderPickService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
* 订单领料线边仓 前端控制器
*
*
* @author 芯导软件(江苏)有限公司
* @since 2026-04-21 03:55:52
*/
@RestController
@RequestMapping("/productionOrderPick")
@Tag(name = "生产订单领料")
@RequiredArgsConstructor
public class ProductionOrderPickController {
private final ProductionOrderPickService productionOrderPickService;
@Log(title = "领料保存到线边仓", businessType = BusinessType.INSERT)
@PostMapping("/savePick")
@Operation(summary = "领料保存到线边仓")
public R savePick(@RequestBody ProductionOrderPickDto dto) {
return R.ok(productionOrderPickService.savePick(dto));
}
@Log(title = "变更领料", businessType = BusinessType.UPDATE)
@PostMapping("/updatePick")
@Operation(summary = "变更领料")
public R updatePick(@RequestBody ProductionOrderPickDto dto) {
return R.ok(productionOrderPickService.updatePick(dto));
}
@GetMapping("/detail/{productionOrderId}")
@Operation(summary = "查询已领料详情")
public R> listPickedDetail(@PathVariable Long productionOrderId) {
return R.ok(productionOrderPickService.listPickedDetail(productionOrderId));
}
@GetMapping("/taskMaterials/{productionOperationTaskId}")
@Operation(summary = "查询工序工单的可领用物料与已领料记录")
public R> listTaskMaterials(@PathVariable Long productionOperationTaskId) {
return R.ok(productionOrderPickService.listTaskMaterials(productionOperationTaskId));
}
@Log(title = "工序领料", businessType = BusinessType.INSERT)
@PostMapping("/savePickByTask")
@Operation(summary = "工序统一领料并立即扣减库存")
public R savePickByTask(@RequestBody ProductionOrderPickDto dto) {
return R.ok(productionOrderPickService.savePickByTask(dto));
}
@GetMapping("/taskPicked/{productionOperationTaskId}")
@Operation(summary = "查询工序工单是否已存在有效领料")
public R hasEffectivePick(@PathVariable Long productionOperationTaskId) {
return R.ok(productionOrderPickService.hasEffectivePick(productionOperationTaskId));
}
}