PurchaseOrderController.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.oms.controller;
  2. import com.oms.common.ApiResponse;
  3. import com.oms.dto.PurchaseOrderDTO;
  4. import com.oms.entity.PurchaseOrder;
  5. import com.oms.service.PurchaseOrderService;
  6. import lombok.RequiredArgsConstructor;
  7. import org.springframework.web.bind.annotation.*;
  8. import java.util.List;
  9. @RestController
  10. @RequestMapping("/purchase/orders")
  11. @RequiredArgsConstructor
  12. public class PurchaseOrderController {
  13. private final PurchaseOrderService purchaseOrderService;
  14. @GetMapping
  15. public ApiResponse<List<PurchaseOrder>> getOrders(
  16. @RequestParam(defaultValue = "1") int page,
  17. @RequestParam(defaultValue = "20") int size) {
  18. return ApiResponse.success(purchaseOrderService.getPage(page, size).getRecords());
  19. }
  20. @GetMapping("/all")
  21. public ApiResponse<List<PurchaseOrder>> getAll() {
  22. return ApiResponse.success(purchaseOrderService.getAll());
  23. }
  24. @GetMapping("/{id}")
  25. public ApiResponse<PurchaseOrderDTO> getById(@PathVariable Long id) {
  26. return ApiResponse.success(purchaseOrderService.getDtoById(id));
  27. }
  28. @GetMapping("/po-no/{poNo}")
  29. public ApiResponse<PurchaseOrder> getByPoNo(@PathVariable String poNo) {
  30. return ApiResponse.success(purchaseOrderService.getByPoNo(poNo));
  31. }
  32. @PostMapping
  33. public ApiResponse<Long> create(@RequestBody PurchaseOrder purchaseOrder) {
  34. return ApiResponse.success(purchaseOrderService.save(purchaseOrder));
  35. }
  36. @PutMapping("/{id}")
  37. public ApiResponse<Void> update(@PathVariable Long id, @RequestBody PurchaseOrder purchaseOrder) {
  38. purchaseOrder.setId(id);
  39. purchaseOrderService.update(purchaseOrder);
  40. return ApiResponse.success(null);
  41. }
  42. @DeleteMapping("/{id}")
  43. public ApiResponse<Void> delete(@PathVariable Long id) {
  44. purchaseOrderService.delete(id);
  45. return ApiResponse.success(null);
  46. }
  47. @PostMapping("/{id}/submit")
  48. public ApiResponse<Void> submit(@PathVariable Long id) {
  49. purchaseOrderService.submit(id);
  50. return ApiResponse.success(null);
  51. }
  52. }