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