package com.ruoyi.production.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.R; import com.ruoyi.production.bean.dto.ProductionTeamDto; import com.ruoyi.production.bean.vo.ProductionTeamVo; import com.ruoyi.production.service.ProductionTeamService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 生产班组控制器 */ @RestController @RequestMapping("/production_team") @Tag(name = "生产班组管理", description = "生产班组增删改查接口") public class ProductionTeamController { private final ProductionTeamService productionTeamService; public ProductionTeamController(ProductionTeamService productionTeamService) { this.productionTeamService = productionTeamService; } /** * 创建班组 */ @PostMapping @Operation(summary = "创建班组", description = "创建生产班组,包含班组长和成员") public R createTeam(@Validated @RequestBody ProductionTeamDto dto) { boolean success = productionTeamService.createTeam(dto); return success ? R.ok("创建成功") : R.fail("创建失败"); } /** * 更新班组 */ @PutMapping @Operation(summary = "更新班组", description = "更新生产班组信息") public R updateTeam(@Validated @RequestBody ProductionTeamDto dto) { if (dto.getId() == null) { return R.fail("班组ID不能为空"); } boolean success = productionTeamService.updateTeam(dto); return success ? R.ok("更新成功") : R.fail("更新失败"); } /** * 删除班组 */ @DeleteMapping("/{id}") @Operation(summary = "删除班组", description = "删除生产班组") public R deleteTeam(@PathVariable Long id) { boolean success = productionTeamService.deleteTeam(id); return success ? R.ok("删除成功") : R.fail("删除失败"); } /** * 查询班组详情 */ @GetMapping("/{id}") @Operation(summary = "查询班组详情", description = "根据ID查询班组详细信息,包含成员列表") public R getTeamDetail(@PathVariable Long id) { ProductionTeamVo vo = productionTeamService.getTeamDetail(id); return vo != null ? R.ok(vo) : R.fail("班组不存在"); } /** * 查询班组列表 */ @GetMapping("/list") @Operation(summary = "查询班组列表", description = "查询生产班组列表,支持按班组名称搜索") public R> getTeamList(ProductionTeamDto dto) { List list = productionTeamService.getTeamList(dto); return R.ok(list); } /** * 分页查询班组列表 */ @GetMapping("/listPage") @Operation(summary = "分页查询班组列表", description = "分页查询生产班组列表,支持按班组名称搜索") public R> listPage(Page page, ProductionTeamDto dto) { return R.ok(productionTeamService.listPage(page, dto)); } }