package com.ruoyi.purchase.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
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.framework.web.domain.R;
|
import com.ruoyi.purchase.mapper.PurchaseLedgerSimpleMapper;
|
import com.ruoyi.purchase.pojo.PurchaseLedgerSimple;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.servlet.http.HttpServletResponse;
|
import lombok.AllArgsConstructor;
|
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.time.LocalDate;
|
import java.time.LocalDateTime;
|
import java.time.ZoneId;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 采购台账(简)Controller
|
* 只做基础台账的增删改查与导出,不与合同、供应商、产品、入库等模块关联。
|
*/
|
@RestController
|
@RequestMapping("/purchase/simpleLedger")
|
@Tag(name = "采购台账(简)")
|
@AllArgsConstructor
|
public class PurchaseLedgerSimpleController {
|
|
private final PurchaseLedgerSimpleMapper purchaseLedgerSimpleMapper;
|
|
/**
|
* 分页列表
|
*/
|
@GetMapping("/list")
|
@Operation(summary = "采购台账(简)分页列表")
|
public R list(@RequestParam(defaultValue = "1") long current,
|
@RequestParam(defaultValue = "10") long size,
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate paymentDateStart,
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate paymentDateEnd,
|
@RequestParam(required = false) String paymentMethod) {
|
LambdaQueryWrapper<PurchaseLedgerSimple> wrapper = new LambdaQueryWrapper<>();
|
if (paymentDateStart != null) {
|
wrapper.ge(PurchaseLedgerSimple::getPaymentDate, toDate(paymentDateStart));
|
}
|
if (paymentDateEnd != null) {
|
wrapper.le(PurchaseLedgerSimple::getPaymentDate, toDate(paymentDateEnd));
|
}
|
if (paymentMethod != null && !paymentMethod.isBlank()) {
|
wrapper.eq(PurchaseLedgerSimple::getPaymentMethod, paymentMethod);
|
}
|
wrapper.orderByDesc(PurchaseLedgerSimple::getPurchaseDate)
|
.orderByDesc(PurchaseLedgerSimple::getId);
|
return R.ok(purchaseLedgerSimpleMapper.selectPage(new Page<>(current, size), wrapper));
|
}
|
|
/**
|
* 详情
|
*/
|
@GetMapping("/{id}")
|
@Operation(summary = "采购台账(简)详情")
|
public R getById(@PathVariable Long id) {
|
return R.ok(purchaseLedgerSimpleMapper.selectById(id));
|
}
|
|
/**
|
* 新增、编辑
|
*/
|
@PostMapping("/save")
|
@Log(title = "采购台账(简)", businessType = BusinessType.INSERT)
|
@Operation(summary = "采购台账(简)新增、编辑")
|
public AjaxResult save(@RequestBody PurchaseLedgerSimple entity) {
|
Date now = new Date();
|
if (entity.getId() == null) {
|
entity.setCreateTime(now);
|
entity.setUpdateTime(now);
|
purchaseLedgerSimpleMapper.insert(entity);
|
} else {
|
entity.setUpdateTime(now);
|
purchaseLedgerSimpleMapper.updateById(entity);
|
}
|
return AjaxResult.success(entity.getId());
|
}
|
|
/**
|
* 删除
|
*/
|
@DeleteMapping("/delete")
|
@Log(title = "采购台账(简)", businessType = BusinessType.DELETE)
|
@Operation(summary = "采购台账(简)删除")
|
public AjaxResult delete(@RequestBody List<Long> ids) {
|
if (ids == null || ids.isEmpty()) {
|
return AjaxResult.error("请选择要删除的数据");
|
}
|
purchaseLedgerSimpleMapper.deleteBatchIds(ids);
|
return AjaxResult.success();
|
}
|
|
/**
|
* 导出
|
*/
|
@PostMapping("/export")
|
@Log(title = "采购台账(简)", businessType = BusinessType.EXPORT)
|
@Operation(summary = "采购台账(简)导出")
|
public void export(HttpServletResponse response,
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate paymentDateStart,
|
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate paymentDateEnd,
|
@RequestParam(required = false) String paymentMethod) {
|
LambdaQueryWrapper<PurchaseLedgerSimple> wrapper = new LambdaQueryWrapper<>();
|
if (paymentDateStart != null) {
|
wrapper.ge(PurchaseLedgerSimple::getPaymentDate, toDate(paymentDateStart));
|
}
|
if (paymentDateEnd != null) {
|
wrapper.le(PurchaseLedgerSimple::getPaymentDate, toDate(paymentDateEnd));
|
}
|
if (paymentMethod != null && !paymentMethod.isBlank()) {
|
wrapper.eq(PurchaseLedgerSimple::getPaymentMethod, paymentMethod);
|
}
|
wrapper.orderByDesc(PurchaseLedgerSimple::getPurchaseDate)
|
.orderByDesc(PurchaseLedgerSimple::getId);
|
List<PurchaseLedgerSimple> list = purchaseLedgerSimpleMapper.selectList(wrapper);
|
ExcelUtil<PurchaseLedgerSimple> util = new ExcelUtil<>(PurchaseLedgerSimple.class);
|
util.exportExcel(response, list, "采购台账");
|
}
|
|
private Date toDate(LocalDate date) {
|
return Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
}
|
}
|