From 586510e643625b09f08e7289d90c9d5df1a56304 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 26 四月 2024 14:17:13 +0800
Subject: [PATCH] 字段调整

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java |   62 +++++++++++++++++++++---------
 1 files changed, 43 insertions(+), 19 deletions(-)

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 b599917..ee26421 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,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("鍒犻櫎鎴愬姛");
         }
@@ -101,17 +113,9 @@
      */
     @Override
     public Result page(CalculateReportQuery query) {
-
-        IPage<CalculateReport> page = new LambdaQueryChainWrapper<>(baseMapper)
-                .orderByDesc(CalculateReport::getCreateTime)
-                .page(PageUtil.getPage(query, CalculateReport.class));
-
-        List<CalculateReportVO> vos = page.getRecords().stream()
-                .map(
-                        entity -> CalculateReportVO.getVoByEntity(entity, null)
-                )
-                .collect(Collectors.toList());
-        return Result.ok().data(vos).total(page.getTotal());
+        IPage<CalculateReportVO> page = PageUtil.getPage(query, CalculateReportVO.class);
+        baseMapper.page(query, page);
+        return Result.ok().data(page.getRecords()).total(page.getTotal());
     }
 
     /**
@@ -120,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);
     }
 
     /**
@@ -142,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("璇ユ牳绠楁姤鍛婁笉瀛樺湪");
+        }
+        // 绱姞寰楀埌鎵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