From 72efbdfb7f79bacacc559e552f8076e292073d0f Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 23 四月 2024 16:45:49 +0800
Subject: [PATCH] 核算报告详情
---
ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java | 49 +++++++++++++++++++++++++++++++++++++------------
1 files changed, 37 insertions(+), 12 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..99edde0 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,11 @@
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.mapper.CalculateRecordMapper;
import com.ycl.platform.mapper.CalculateReportMapper;
import com.ycl.platform.service.CalculateReportService;
import com.ycl.system.Result;
@@ -8,6 +13,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 +25,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 +42,7 @@
public class CalculateReportServiceImpl extends ServiceImpl<CalculateReportMapper, CalculateReport> implements CalculateReportService {
private final CalculateReportMapper calculateReportMapper;
+ private final CalculateRecordMapper calculateRecordMapper;
/**
* 娣诲姞
@@ -101,17 +110,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());
}
/**
@@ -121,10 +122,12 @@
*/
@Override
public Result detail(String id) {
-
CalculateReport entity = baseMapper.selectById(id);
Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
CalculateReportVO vo = CalculateReportVO.getVoByEntity(entity, null);
+ // 鏄庣粏鍒楄〃
+ List<CalculateRecordVO> recordList = calculateRecordMapper.getByContractId(entity.getContractId());
+ vo.setRecordList(recordList);
return Result.ok().data(vo);
}
@@ -142,4 +145,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