package com.ruoyi.purchase.controller;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.account.pojo.AccountStatementDetails;
|
import com.ruoyi.account.service.AccountStatementDetailsService;
|
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.utils.OrderUtils;
|
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.purchase.dto.PurchaseReturnOrderDto;
|
import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
|
import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
|
|
import java.time.LocalDateTime;
|
import com.ruoyi.purchase.service.PurchaseReturnOrdersService;
|
import com.ruoyi.purchase.vo.PurchaseStockInProductVo;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import lombok.AllArgsConstructor;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
|
/**
|
* <p>
|
* 前端控制器
|
* </p>
|
*
|
* @author 芯导软件(江苏)有限公司
|
* @since 2026-03-06 11:44:38
|
*/
|
@RestController
|
@RequestMapping("/purchaseReturnOrders")
|
@Tag(name = "采购退货单")
|
@AllArgsConstructor
|
public class PurchaseReturnOrdersController {
|
private PurchaseReturnOrdersService purchaseReturnOrdersService;
|
private PurchaseReturnOrdersMapper purchaseReturnOrdersMapper;
|
private AccountStatementDetailsService accountStatementDetailsService;
|
|
|
@GetMapping("/listPage")
|
public AjaxResult listPage(Page page, PurchaseReturnOrderDto purchaseReturnOrderDto) {
|
return AjaxResult.success(purchaseReturnOrdersService.listPage(page, purchaseReturnOrderDto));
|
}
|
|
// 新增
|
@Log(title = "采购退货单", businessType = BusinessType.INSERT)
|
@PostMapping("/add")
|
public AjaxResult add(@RequestBody PurchaseReturnOrderDto purchaseReturnOrderDto) throws Exception {
|
if (purchaseReturnOrderDto.getIsDefaultNo()) {
|
purchaseReturnOrderDto.setNo(OrderUtils.countTodayByCreateTime(purchaseReturnOrdersMapper, "CGTL", "no", purchaseReturnOrderDto.getCreateTime() != null ? purchaseReturnOrderDto.getCreateTime() : LocalDateTime.now()));
|
}
|
return AjaxResult.success(purchaseReturnOrdersService.add(purchaseReturnOrderDto));
|
}
|
|
|
@GetMapping("/selectById/{id}")
|
public AjaxResult selectById(@PathVariable Long id) {
|
return AjaxResult.success(purchaseReturnOrdersService.getPurchaseReturnOrderDtoById(id));
|
}
|
|
@PostMapping("/deleteById/{id}")
|
public AjaxResult deleteById(@PathVariable Long id) {
|
//如果该采购退货已经生成对账单则无法删除
|
PurchaseReturnOrders purchaseReturnOrders = purchaseReturnOrdersService.getById(id);
|
List<AccountStatementDetails> accountStatementDetails = accountStatementDetailsService.list(Wrappers.<AccountStatementDetails>lambdaQuery()
|
.eq(AccountStatementDetails::getReceiptNumber, purchaseReturnOrders.getNo()));
|
if (CollectionUtils.isNotEmpty(accountStatementDetails)){
|
throw new ServiceException("该采购退货单已经生成对账单,无法删除");
|
}
|
purchaseReturnOrdersService.deleteById(id);
|
return AjaxResult.success();
|
}
|
|
@GetMapping("/getByPurchaseLedgerId")
|
@Operation(summary = "采购退货-根据采购订单id查询采购订单对应的入库产品信息")
|
public AjaxResult getByPurchaseLedgerId(Long purchaseLedgerId) {
|
List<PurchaseStockInProductVo> purchaseStockInProductVos = purchaseReturnOrdersService.getByPurchaseLedgerId(purchaseLedgerId);
|
return AjaxResult.success(purchaseStockInProductVos);
|
}
|
|
|
}
|