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 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 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)); } }