package com.ruoyi.account.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.pojo.FinanceAccount; import com.ruoyi.account.service.FinanceAccountService; import com.ruoyi.framework.web.domain.AjaxResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.List; /** * 财务管理--资金账户 */ @RestController @RequestMapping("/finance/account") @Api(tags = "财务管理--资金账户") public class FinanceAccountController { @Resource private FinanceAccountService financeAccountService; /** * 新增账户 */ @PostMapping @ApiOperation("新增账户") public AjaxResult add(@RequestBody FinanceAccount account) { if (account.getOpeningBalance() == null) { account.setOpeningBalance(BigDecimal.ZERO); } if (account.getStatus() == null) { account.setStatus("0"); } return AjaxResult.success(financeAccountService.save(account)); } /** * 删除 */ @DeleteMapping @ApiOperation("删除账户") public AjaxResult del(@RequestBody List ids) { if (CollectionUtils.isEmpty(ids)) { return AjaxResult.error("请选择至少一条数据"); } return AjaxResult.success(financeAccountService.removeBatchByIds(ids)); } /** * 修改 */ @PutMapping @ApiOperation("修改账户") public AjaxResult update(@RequestBody FinanceAccount account) { return AjaxResult.success(financeAccountService.updateById(account)); } /** * 分页查询(含当前余额) */ @GetMapping("/page") @ApiOperation("分页查询(含余额)") public AjaxResult page(Page page, FinanceAccount account) { return AjaxResult.success(financeAccountService.pageWithBalance(page, account)); } /** * 启用账户列表(下拉用) */ @GetMapping("/list") @ApiOperation("启用账户列表(下拉用)") public AjaxResult list() { FinanceAccount q = new FinanceAccount(); q.setStatus("0"); return AjaxResult.success(financeAccountService.pageWithBalance(new Page(1, 1000), q).getRecords()); } /** * 查询账户余额 */ @GetMapping("/balance/{accountId}") @ApiOperation("查询账户余额") public AjaxResult balance(@PathVariable("accountId") Long accountId) { return AjaxResult.success(financeAccountService.getBalance(accountId)); } /** * 资金流趋势 */ @GetMapping("/trend") @ApiOperation("资金流趋势") public AjaxResult trend(@RequestParam(required = false) Long accountId, @RequestParam(required = false) String start, @RequestParam(required = false) String end) { return AjaxResult.success(financeAccountService.trend(accountId, start, end)); } }