From f7e52720649861e539b507a936220acfe35f95d3 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 23 四月 2024 15:52:19 +0800 Subject: [PATCH] 核算报告金额回填 --- ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java | 2 ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java | 8 ++++ ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportBackfillForm.java | 38 +++++++++++++++++++ ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java | 30 +++++++++++++++ ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java | 1 ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java | 9 ++++ ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java | 4 + 7 files changed, 89 insertions(+), 3 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java b/ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java index 4c4c8bf..d22ecf2 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/base/AbsForm.java +++ b/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; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportBackfillForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportBackfillForm.java new file mode 100644 index 0000000..01c5f34 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportBackfillForm.java @@ -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; + +/** + * 鍥炲~鎵f閲戦 + * + * @author锛歺p + * @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; + + /** 姣忛」鎵f閲戦 */ + @NotNull(message = "鎵f閲戦涓嶈兘涓虹┖") + private BigDecimal deductMoney; + + } +} diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java index 07c53f0..6c3a2ea 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/form/CalculateReportForm.java +++ b/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 { diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java index 328a6d8..90fc639 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java +++ b/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; + } diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java index 04330b7..14c68e7 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java +++ b/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 = "鍥炲~鎵f閲戦", notes = "鍥炲~鎵f閲戦") + @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')") diff --git a/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java b/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java index 7c0b835..1b79a79 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java +++ b/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(); + + /** + * 鍥炲~鎵f閲戦 + * + * @param form + * @return + */ + Result backfill(CalculateReportBackfillForm form); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java index 01fedde..4829785 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java +++ b/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("璇ユ牳绠楁姤鍛婁笉瀛樺湪"); + } + // 绱姞寰楀埌鎵f鎬婚 + 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("鎿嶄綔鎴愬姛"); + } } -- Gitblit v1.8.0