| | |
| | | package com.ycl.platform.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.ycl.platform.domain.entity.CalculateRecord; |
| | | import com.ycl.platform.domain.entity.CalculateReport; |
| | | import com.ycl.platform.domain.form.CalculateReportBackfillForm; |
| | | import com.ycl.platform.mapper.CalculateRecordMapper; |
| | | import com.ycl.platform.mapper.CalculateReportMapper; |
| | | import com.ycl.platform.service.CalculateReportService; |
| | | import com.ycl.system.Result; |
| | |
| | | import com.ycl.platform.domain.form.CalculateReportForm; |
| | | import com.ycl.platform.domain.vo.CalculateReportVO; |
| | | import com.ycl.platform.domain.query.CalculateReportQuery; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.Assert; |
| | | import java.util.ArrayList; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | |
| | | public class CalculateReportServiceImpl extends ServiceImpl<CalculateReportMapper, CalculateReport> implements CalculateReportService { |
| | | |
| | | private final CalculateReportMapper calculateReportMapper; |
| | | private final CalculateRecordMapper calculateRecordMapper; |
| | | |
| | | /** |
| | | * 添加 |
| | |
| | | .collect(Collectors.toList()); |
| | | return Result.ok().data(vos); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result backfill(CalculateReportBackfillForm form) { |
| | | CalculateReport report = baseMapper.selectById(form.getId()); |
| | | if (Objects.isNull(report)) { |
| | | throw new RuntimeException("该核算报告不存在"); |
| | | } |
| | | // 累加得到扣款总额 |
| | | BigDecimal totalDeduct = form.getRecordList().stream() |
| | | .map(CalculateReportBackfillForm.RecordForm::getDeductMoney) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | report.setDeductMoney(totalDeduct); |
| | | baseMapper.updateById(report); |
| | | form.getRecordList().stream().forEach(item -> { |
| | | new LambdaUpdateChainWrapper<>(calculateRecordMapper) |
| | | .eq(CalculateRecord::getId, item.getId()) |
| | | .set(CalculateRecord::getDeductMoney, item.getDeductMoney()) |
| | | .update(); |
| | | }); |
| | | return Result.ok("操作成功"); |
| | | } |
| | | } |