71 lines
3.0 KiB
Java
71 lines
3.0 KiB
Java
package com.gunshi.project.ss.service;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.gunshi.project.ss.entity.so.FundBudgetPageSo;
|
|
import com.gunshi.project.ss.mapper.FundBudgetMapper;
|
|
import com.gunshi.project.ss.model.FundBudget;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.time.LocalDateTime;
|
|
|
|
@Service
|
|
@Slf4j
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public class FundBudgetService extends ServiceImpl<FundBudgetMapper, FundBudget> {
|
|
|
|
|
|
public Page<FundBudget> pageInfo(FundBudgetPageSo pageSo) {
|
|
LambdaQueryWrapper<FundBudget> queryWrapper = new LambdaQueryWrapper<>();
|
|
if(pageSo.getBudgetYear() != null){
|
|
queryWrapper.eq(FundBudget::getBudgetYear, pageSo.getBudgetYear());
|
|
}
|
|
Page<FundBudget> fundBudgetPage = baseMapper.selectPage(pageSo.getPageSo().toPage(), queryWrapper);
|
|
return fundBudgetPage;
|
|
}
|
|
|
|
public boolean saveData(FundBudget fundBudget) {
|
|
LambdaQueryWrapper<FundBudget> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.eq(FundBudget::getBudgetYear, fundBudget.getBudgetYear());
|
|
FundBudget one = baseMapper.selectOne(queryWrapper);
|
|
if(one != null){
|
|
throw new IllegalArgumentException("对不起,该年度预算已存在");
|
|
}
|
|
if(fundBudget.getAnnualIncomeBudget() != null && fundBudget.getAnnualExpenditureBudget() != null){
|
|
|
|
BigDecimal budget_balance = fundBudget.getAnnualIncomeBudget().subtract(fundBudget.getAnnualExpenditureBudget());
|
|
fundBudget.setBudgetBalance(budget_balance);
|
|
}
|
|
fundBudget.setCreateTime(LocalDateTime.now());
|
|
boolean save = save(fundBudget);
|
|
return save;
|
|
}
|
|
|
|
public boolean updateData(FundBudget fundBudget) {
|
|
FundBudget byId = getById(fundBudget.getId());
|
|
if(byId == null){
|
|
throw new IllegalArgumentException("对不起,该数据不存在");
|
|
}
|
|
LambdaQueryWrapper<FundBudget> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.eq(FundBudget::getBudgetYear, fundBudget.getBudgetYear())
|
|
.ne(FundBudget::getId, fundBudget.getId());
|
|
FundBudget one = baseMapper.selectOne(queryWrapper);
|
|
if(one != null){
|
|
throw new IllegalArgumentException("对不起,该年度预算已存在");
|
|
}
|
|
boolean update = updateById(fundBudget);
|
|
return update;
|
|
}
|
|
|
|
public FundBudget getByYear(Integer year) {
|
|
LambdaQueryWrapper<FundBudget> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.eq(FundBudget::getBudgetYear, year);
|
|
FundBudget one = baseMapper.selectOne(queryWrapper);
|
|
return one;
|
|
}
|
|
}
|