package com.ruoyi.account.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.ruoyi.account.pojo.FinanceCashflowPlan;
|
import com.ruoyi.account.service.FinanceCashflowPlanService;
|
import com.ruoyi.framework.web.domain.AjaxResult;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
@RestController
|
@RequestMapping("/finance/cashflowPlan")
|
@Api(tags = "财务管理--收支计划")
|
public class FinanceCashflowPlanController {
|
@Resource
|
private FinanceCashflowPlanService service;
|
|
@GetMapping("/page")
|
public AjaxResult page(Page page, FinanceCashflowPlan query) {
|
QueryWrapper<FinanceCashflowPlan> wrapper = new QueryWrapper<>();
|
wrapper.eq(query.getPlanType() != null && !query.getPlanType().isEmpty(), "plan_type", query.getPlanType())
|
.eq(query.getStatus() != null && !query.getStatus().isEmpty(), "status", query.getStatus())
|
.like(query.getCounterparty() != null && !query.getCounterparty().isEmpty(), "counterparty", query.getCounterparty())
|
.orderByAsc("plan_date").orderByDesc("id");
|
return AjaxResult.success(service.page(page, wrapper));
|
}
|
|
@PostMapping
|
@ApiOperation("新增收支计划")
|
public AjaxResult add(@RequestBody FinanceCashflowPlan plan) {
|
if (plan.getStatus() == null) plan.setStatus("0");
|
return AjaxResult.success(service.save(plan));
|
}
|
|
@PutMapping
|
public AjaxResult update(@RequestBody FinanceCashflowPlan plan) {
|
return AjaxResult.success(service.updateById(plan));
|
}
|
|
@DeleteMapping
|
public AjaxResult delete(@RequestBody List<Long> ids) {
|
return AjaxResult.success(service.removeBatchByIds(ids));
|
}
|
|
@GetMapping("/forecast")
|
@ApiOperation("未来30天资金预测")
|
public AjaxResult forecast(@RequestParam(required = false) Integer days,
|
@RequestParam(required = false) BigDecimal safetyLine) {
|
return AjaxResult.success(service.forecast(days, safetyLine));
|
}
|
}
|