You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

165 lines
4.5 KiB

4 months ago
  1. package com.gaotao.modules.warehouse.controller;
  2. import com.gaotao.common.utils.PageUtils;
  3. import com.gaotao.common.utils.R;
  4. import com.gaotao.modules.factory.service.AccessSiteService;
  5. import com.gaotao.modules.warehouse.entity.Pallet;
  6. import com.gaotao.modules.warehouse.entity.dto.PalletQueryDto;
  7. import com.gaotao.modules.warehouse.entity.vo.PalletVo;
  8. import com.gaotao.modules.warehouse.service.PalletService;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.*;
  11. import java.util.Arrays;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * 托盘管理控制器
  16. */
  17. @RestController
  18. @RequestMapping("/warehouse/pallet")
  19. public class PalletController {
  20. @Autowired
  21. private PalletService palletService;
  22. @Autowired
  23. private AccessSiteService accessSiteService;
  24. /**
  25. * 获取托盘列表
  26. */
  27. @PostMapping("/list")
  28. public R list(@RequestBody PalletQueryDto queryDto) {
  29. PageUtils page = palletService.queryPage(queryDto);
  30. return R.ok().put("page", page);
  31. }
  32. /**
  33. * 根据托盘ID获取托盘信息
  34. */
  35. @PostMapping("/info")
  36. public R info(@RequestBody Pallet pallet) {
  37. PalletVo palletVo = palletService.getPalletByPalletId(pallet.getPalletId());
  38. return R.ok().put("pallet", palletVo);
  39. }
  40. /**
  41. * 根据主键ID获取托盘信息
  42. */
  43. @GetMapping("/info/{id}")
  44. public R info(@PathVariable("id") Long id) {
  45. Pallet pallet = palletService.getById(id);
  46. return R.ok().put("pallet", pallet);
  47. }
  48. /**
  49. * 保存托盘信息
  50. */
  51. @PostMapping("/save")
  52. public R save(@RequestBody Pallet pallet) {
  53. try {
  54. palletService.savePallet(pallet);
  55. return R.ok("托盘信息保存成功");
  56. } catch (Exception e) {
  57. return R.error(e.getMessage());
  58. }
  59. }
  60. /**
  61. * 修改托盘信息
  62. */
  63. @PostMapping("/update")
  64. public R update(@RequestBody Pallet pallet) {
  65. try {
  66. palletService.updatePallet(pallet);
  67. return R.ok("托盘信息修改成功");
  68. } catch (Exception e) {
  69. return R.error(e.getMessage());
  70. }
  71. }
  72. /**
  73. * 删除托盘
  74. */
  75. @PostMapping("/delete")
  76. public R delete(@RequestBody Long[] ids) {
  77. try {
  78. palletService.deletePalletBatch(ids);
  79. return R.ok("托盘删除成功");
  80. } catch (Exception e) {
  81. return R.error(e.getMessage());
  82. }
  83. }
  84. /**
  85. * 检查托盘ID是否存在
  86. */
  87. @PostMapping("/checkPalletId")
  88. public R checkPalletId(@RequestBody Pallet pallet) {
  89. boolean exists = palletService.checkPalletIdExists(pallet.getPalletId(), pallet.getId());
  90. return R.ok().put("exists", exists);
  91. }
  92. /**
  93. * 获取托盘状态选项
  94. */
  95. @GetMapping("/statusOptions")
  96. public R getStatusOptions() {
  97. return R.ok().put("options", Arrays.asList(
  98. new StatusOption("AVAILABLE", "可用"),
  99. new StatusOption("OCCUPIED", "使用中"),
  100. new StatusOption("DAMAGED", "损坏"),
  101. new StatusOption("DISABLED", "禁用")
  102. ));
  103. }
  104. /**
  105. * 获取用户授权站点列表
  106. */
  107. @PostMapping("/getUserAuthorizedSites")
  108. public R getUserAuthorizedSites(@RequestBody Map<String, Object> params) {
  109. String userName = (String) params.get("userName");
  110. if (userName == null || userName.trim().isEmpty()) {
  111. return R.error("用户名不能为空");
  112. }
  113. try {
  114. List<Map<String, Object>> siteList = accessSiteService.getUserAuthorizedSites(userName.trim());
  115. return R.ok().put("data", siteList);
  116. } catch (Exception e) {
  117. return R.error("获取站点列表失败:" + e.getMessage());
  118. }
  119. }
  120. /**
  121. * 状态选项内部类
  122. */
  123. public static class StatusOption {
  124. private String value;
  125. private String label;
  126. public StatusOption(String value, String label) {
  127. this.value = value;
  128. this.label = label;
  129. }
  130. public String getValue() {
  131. return value;
  132. }
  133. public void setValue(String value) {
  134. this.value = value;
  135. }
  136. public String getLabel() {
  137. return label;
  138. }
  139. public void setLabel(String label) {
  140. this.label = label;
  141. }
  142. }
  143. }