package com.ruoyi.stock.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.stock.dto.ProductBorrowDto; import com.ruoyi.stock.service.ProductBorrowService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 产品领用 Controller * * @author ruoyi */ @Tag(name = "产品领用") @RestController @RequestMapping("/productBorrow") @RequiredArgsConstructor public class ProductBorrowController { private final ProductBorrowService productBorrowService; @PostMapping("/listPage") @Log(title = "产品领用-列表", businessType = BusinessType.OTHER) @Operation(summary = "分页查询领用记录") public AjaxResult listPage(@RequestBody Page page, @RequestBody ProductBorrowDto dto) { IPage result = productBorrowService.listPage(page, dto); return AjaxResult.success(result); } @PostMapping("/getDetail") @Log(title = "产品领用-详情", businessType = BusinessType.OTHER) @Operation(summary = "查询领用记录详情") public AjaxResult getDetail(@RequestBody ProductBorrowDto dto) { ProductBorrowDto result = productBorrowService.getDetailById(dto.getId()); return AjaxResult.success(result); } @PostMapping("/add") @Log(title = "产品领用-新增", businessType = BusinessType.INSERT) @Operation(summary = "新增领用记录") public AjaxResult add(@RequestBody ProductBorrowDto dto) { productBorrowService.add(dto); return AjaxResult.success(); } @PostMapping("/update") @Log(title = "产品领用-修改", businessType = BusinessType.UPDATE) @Operation(summary = "修改领用记录") public AjaxResult update(@RequestBody ProductBorrowDto dto) { productBorrowService.update(dto); return AjaxResult.success(); } @PostMapping("/delete") @Log(title = "产品领用-删除", businessType = BusinessType.DELETE) @Operation(summary = "删除领用记录") public AjaxResult delete(@RequestBody List ids) { if (CollectionUtils.isEmpty(ids)) { return AjaxResult.error("请选择至少一条数据"); } productBorrowService.delete(ids); return AjaxResult.success(); } @PostMapping("/approve") @Log(title = "产品领用-审批", businessType = BusinessType.UPDATE) @Operation(summary = "批量审批领用记录") public AjaxResult approve(@RequestBody ProductBorrowDto dto) { if (CollectionUtils.isEmpty(dto.getIds())) { return AjaxResult.error("请选择至少一条数据"); } productBorrowService.batchApprove(dto.getIds(), dto.getApprovalStatusParam()); return AjaxResult.success(); } @PostMapping("/reAudit") @Log(title = "产品领用-反审", businessType = BusinessType.UPDATE) @Operation(summary = "批量反审领用记录") public AjaxResult reAudit(@RequestBody ProductBorrowDto dto) { if (CollectionUtils.isEmpty(dto.getIds())) { return AjaxResult.error("请选择至少一条数据"); } // 反审:将已通过的记录状态改回待审批,需要考虑是否已经归还 // 此处暂不实现反审逻辑,如需要可以扩展 return AjaxResult.error("反审功能暂未实现"); } }