package com.ruoyi.purchase.controller; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.purchase.dto.PurchaseApplicationDto; import com.ruoyi.purchase.pojo.PurchaseApplication; import com.ruoyi.purchase.service.PurchaseApplicationService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * 采购申请单 Controller */ @RestController @RequestMapping("/purchase/application") @AllArgsConstructor @Tag(name = "采购申请") public class PurchaseApplicationController extends BaseController { private final PurchaseApplicationService purchaseApplicationService; /** * 查询采购申请列表 */ @GetMapping("/list") public TableDataInfo list(PurchaseApplicationDto purchaseApplicationDto) { startPage(); List list = purchaseApplicationService.selectApplicationList(purchaseApplicationDto); return getDataTable(list); } /** * 查询采购申请详情(含产品明细) */ @GetMapping("/getById") public AjaxResult getById(@RequestParam Long id) { return AjaxResult.success(purchaseApplicationService.getDetail(id)); } /** * 新增采购申请(草稿) */ @Log(title = "采购申请", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody PurchaseApplicationDto purchaseApplicationDto) { return AjaxResult.success(purchaseApplicationService.saveApplication(purchaseApplicationDto)); } /** * 修改采购申请,仅草稿状态允许修改 */ @Log(title = "采购申请", businessType = BusinessType.UPDATE) @PostMapping("/edit") public AjaxResult edit(@RequestBody PurchaseApplicationDto purchaseApplicationDto) { return toAjax(purchaseApplicationService.updateApplication(purchaseApplicationDto)); } /** * 删除采购申请,仅草稿状态允许删除 */ @Log(title = "采购申请", businessType = BusinessType.DELETE) @DeleteMapping("/delete") public AjaxResult delete(@RequestBody Long[] ids) { return toAjax(purchaseApplicationService.deleteApplications( ids == null ? List.of() : List.of(ids))); } /** * 采购申请转订单:生成采购台账并提交 OA 采购审批 */ @Operation(summary = "采购申请转订单") @Log(title = "采购申请转订单", businessType = BusinessType.OTHER) @PostMapping("/convertToOrder") public AjaxResult convertToOrder(@RequestParam Long id) { return AjaxResult.success(purchaseApplicationService.convertToOrder(id)); } }