SupplierSettlementController.java 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.oms.controller;
  2. import com.oms.dto.SupplierSettlementDTO;
  3. import com.oms.entity.SupplierSettlement;
  4. import com.oms.service.SupplierSettlementService;
  5. import lombok.RequiredArgsConstructor;
  6. import org.springframework.web.bind.annotation.*;
  7. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8. import com.oms.dto.PageResponse;
  9. import java.util.List;
  10. @RestController
  11. @RequestMapping("/finance/settlements")
  12. @RequiredArgsConstructor
  13. public class SupplierSettlementController {
  14. private final SupplierSettlementService supplierSettlementService;
  15. @GetMapping
  16. public PageResponse<SupplierSettlement> getSettlements(
  17. @RequestParam(defaultValue = "1") int page,
  18. @RequestParam(defaultValue = "20") int size) {
  19. Page<SupplierSettlement> pageResult = supplierSettlementService.getPage(page, size);
  20. return PageResponse.of(pageResult.getRecords(), pageResult.getTotal(), (int) pageResult.getCurrent(), (int) pageResult.getSize());
  21. }
  22. @GetMapping("/all")
  23. public List<SupplierSettlement> getAll() {
  24. return supplierSettlementService.getAll();
  25. }
  26. @GetMapping("/{id}")
  27. public SupplierSettlementDTO getById(@PathVariable Long id) {
  28. return supplierSettlementService.getDtoById(id);
  29. }
  30. @GetMapping("/settlement-no/{settlementNo}")
  31. public SupplierSettlement getBySettlementNo(@PathVariable String settlementNo) {
  32. return supplierSettlementService.getBySettlementNo(settlementNo);
  33. }
  34. @PostMapping
  35. public Long create(@RequestBody SupplierSettlement settlement) {
  36. return supplierSettlementService.save(settlement);
  37. }
  38. @PutMapping("/{id}")
  39. public void update(@PathVariable Long id, @RequestBody SupplierSettlement settlement) {
  40. settlement.setId(id);
  41. supplierSettlementService.update(settlement);
  42. }
  43. @DeleteMapping("/{id}")
  44. public void delete(@PathVariable Long id) {
  45. supplierSettlementService.delete(id);
  46. }
  47. @PostMapping("/{id}/settle")
  48. public void settle(@PathVariable Long id) {
  49. supplierSettlementService.settle(id, "system");
  50. }
  51. @PostMapping("/{id}/partial-settle")
  52. public void partialSettle(@PathVariable Long id, @RequestParam java.math.BigDecimal amount) {
  53. supplierSettlementService.partialSettle(id, amount, "system");
  54. }
  55. @PostMapping("/generate")
  56. public Long generateSettlement(@RequestParam Long supplierId, @RequestParam String period) {
  57. return supplierSettlementService.generateSettlement(supplierId, period, null, null);
  58. }
  59. }