xiangpei
2024-04-23 f7e52720649861e539b507a936220acfe35f95d3
核算报告金额回填
6个文件已修改
1个文件已添加
92 ■■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportBackfillForm.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java
@@ -16,6 +16,6 @@
    @ApiModelProperty(value = "id,修改必传", required = false)
    @NotBlank(message = "请选择数据", groups = {Update.class})
    private String id;
    private Integer id;
}
ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportBackfillForm.java
New file
@@ -0,0 +1,38 @@
package com.ycl.platform.domain.form;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
 * 回填扣款金额
 *
 * @author:xp
 * @date:2024/4/23 15:16
 */
@Data
public class CalculateReportBackfillForm {
    @NotNull(message = "请选择核算报告")
    private Integer id;
    @Valid
    @NotEmpty(message = "核算明细不能为空")
    private List<RecordForm> recordList;
    @Data
    public static class RecordForm {
        @NotNull(message = "明细主键不能为空")
        private Integer id;
        /** 每项扣款金额 */
        @NotNull(message = "扣款金额不能为空")
        private BigDecimal deductMoney;
    }
}
ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java
@@ -23,7 +23,6 @@
 * @since 2024-04-23
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "CalculateReport表单", description = "核算报告表单")
public class CalculateReportForm extends AbsForm {
ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java
@@ -16,8 +16,10 @@
 * @since 2024-04-23
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "CalculateReport查询", description = "核算报告查询")
public class CalculateReportQuery extends AbsQuery {
    private String unitName;
}
ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java
@@ -1,5 +1,6 @@
package com.ycl.platform.controller;
import com.ycl.platform.domain.form.CalculateReportBackfillForm;
import com.ycl.system.domain.group.Update;
import com.ycl.system.domain.group.Add;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -58,6 +59,13 @@
        return calculateReportService.page(query);
    }
    @GetMapping("/backfill/money")
    @ApiOperation(value = "回填扣款金额", notes = "回填扣款金额")
    @PreAuthorize("@ss.hasPermi('system:calculate:report:backfill')")
    public Result backfill(@Validated @RequestBody CalculateReportBackfillForm form) {
        return calculateReportService.backfill(form);
    }
    @GetMapping("/{id}")
    @ApiOperation(value = "详情", notes = "详情")
    @PreAuthorize("@ss.hasPermi('system:calculate:report:detail')")
ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java
@@ -2,6 +2,7 @@
import com.ycl.platform.domain.entity.CalculateReport;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.platform.domain.form.CalculateReportBackfillForm;
import com.ycl.system.Result;
import com.ycl.platform.domain.form.CalculateReportForm;
import com.ycl.platform.domain.query.CalculateReportQuery;
@@ -62,4 +63,12 @@
     * @return
     */
    Result all();
    /**
     * 回填扣款金额
     *
     * @param form
     * @return
     */
    Result backfill(CalculateReportBackfillForm form);
}
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java
@@ -1,6 +1,10 @@
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;
@@ -8,6 +12,8 @@
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;
@@ -18,6 +24,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 +41,7 @@
public class CalculateReportServiceImpl extends ServiceImpl<CalculateReportMapper, CalculateReport> implements CalculateReportService {
    private final CalculateReportMapper calculateReportMapper;
    private final CalculateRecordMapper calculateRecordMapper;
    /**
     * 添加
@@ -134,4 +142,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("操作成功");
    }
}