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