package com.gaotao.modules.warehouse.controller; import com.gaotao.common.utils.PageUtils; import com.gaotao.common.utils.R; import com.gaotao.modules.factory.service.AccessSiteService; import com.gaotao.modules.warehouse.entity.Pallet; import com.gaotao.modules.warehouse.entity.dto.PalletQueryDto; import com.gaotao.modules.warehouse.entity.vo.PalletVo; import com.gaotao.modules.warehouse.service.PalletService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; import java.util.Map; /** * 托盘管理控制器 */ @RestController @RequestMapping("/warehouse/pallet") public class PalletController { @Autowired private PalletService palletService; @Autowired private AccessSiteService accessSiteService; /** * 获取托盘列表 */ @PostMapping("/list") public R list(@RequestBody PalletQueryDto queryDto) { PageUtils page = palletService.queryPage(queryDto); return R.ok().put("page", page); } /** * 根据托盘ID获取托盘信息 */ @PostMapping("/info") public R info(@RequestBody Pallet pallet) { PalletVo palletVo = palletService.getPalletByPalletId(pallet.getPalletId()); return R.ok().put("pallet", palletVo); } /** * 根据主键ID获取托盘信息 */ @GetMapping("/info/{id}") public R info(@PathVariable("id") Long id) { Pallet pallet = palletService.getById(id); return R.ok().put("pallet", pallet); } /** * 保存托盘信息 */ @PostMapping("/save") public R save(@RequestBody Pallet pallet) { try { palletService.savePallet(pallet); return R.ok("托盘信息保存成功"); } catch (Exception e) { return R.error(e.getMessage()); } } /** * 修改托盘信息 */ @PostMapping("/update") public R update(@RequestBody Pallet pallet) { try { palletService.updatePallet(pallet); return R.ok("托盘信息修改成功"); } catch (Exception e) { return R.error(e.getMessage()); } } /** * 删除托盘 */ @PostMapping("/delete") public R delete(@RequestBody Long[] ids) { try { palletService.deletePalletBatch(ids); return R.ok("托盘删除成功"); } catch (Exception e) { return R.error(e.getMessage()); } } /** * 检查托盘ID是否存在 */ @PostMapping("/checkPalletId") public R checkPalletId(@RequestBody Pallet pallet) { boolean exists = palletService.checkPalletIdExists(pallet.getPalletId(), pallet.getId()); return R.ok().put("exists", exists); } /** * 获取托盘状态选项 */ @GetMapping("/statusOptions") public R getStatusOptions() { return R.ok().put("options", Arrays.asList( new StatusOption("AVAILABLE", "可用"), new StatusOption("OCCUPIED", "使用中"), new StatusOption("DAMAGED", "损坏"), new StatusOption("DISABLED", "禁用") )); } /** * 获取用户授权站点列表 */ @PostMapping("/getUserAuthorizedSites") public R getUserAuthorizedSites(@RequestBody Map params) { String userName = (String) params.get("userName"); if (userName == null || userName.trim().isEmpty()) { return R.error("用户名不能为空"); } try { List> siteList = accessSiteService.getUserAuthorizedSites(userName.trim()); return R.ok().put("data", siteList); } catch (Exception e) { return R.error("获取站点列表失败:" + e.getMessage()); } } /** * 状态选项内部类 */ public static class StatusOption { private String value; private String label; public StatusOption(String value, String label) { this.value = value; this.label = label; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } } }