xiangpei
2024-04-26 586510e643625b09f08e7289d90c9d5df1a56304
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java
@@ -1,6 +1,12 @@
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.domain.vo.CalculateRecordVO;
import com.ycl.platform.domain.vo.CalculateReportDetailVO;
import com.ycl.platform.mapper.CalculateRecordMapper;
import com.ycl.platform.mapper.CalculateReportMapper;
import com.ycl.platform.service.CalculateReportService;
import com.ycl.system.Result;
@@ -8,7 +14,11 @@
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 com.ycl.utils.SecurityUtils;
import org.apache.commons.lang3.StringUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.system.page.PageUtil;
@@ -18,6 +28,7 @@
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;
@@ -34,6 +45,7 @@
public class CalculateReportServiceImpl extends ServiceImpl<CalculateReportMapper, CalculateReport> implements CalculateReportService {
    private final CalculateReportMapper calculateReportMapper;
    private final CalculateRecordMapper calculateRecordMapper;
    /**
     * 添加
@@ -74,7 +86,7 @@
     * @return
     */
    @Override
    public Result remove(List<String> ids) {
    public Result remove(List<Long> ids) {
        if(baseMapper.deleteBatchIds(ids) > 0) {
            return Result.ok("删除成功");
        }
@@ -87,7 +99,7 @@
     * @return
     */
    @Override
    public Result removeById(String id) {
    public Result removeById(Long id) {
        if(baseMapper.deleteById(id) > 0) {
            return Result.ok("删除成功");
        }
@@ -112,12 +124,10 @@
     * @return
     */
    @Override
    public Result detail(String id) {
        CalculateReport entity = baseMapper.selectById(id);
        Assert.notNull(entity, "记录不存在");
        CalculateReportVO vo = CalculateReportVO.getVoByEntity(entity, null);
        return Result.ok().data(vo);
    public Result detail(Long id) {
        // 明细列表
        CalculateReportDetailVO detail = baseMapper.getById(id);
        return Result.ok().data(detail);
    }
    /**
@@ -134,4 +144,26 @@
                .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("操作成功");
    }
}