From 061b711dc16212c651ce6047145420c50728f213 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 26 四月 2024 15:54:00 +0800 Subject: [PATCH] 核算报告功能完善 --- ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java | 58 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 45 insertions(+), 13 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 ee26421..8943806 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 @@ -19,6 +19,7 @@ import java.util.List; import com.ycl.utils.SecurityUtils; +import enumeration.general.CalculateReportStatusEnum; import org.apache.commons.lang3.StringUtils; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.system.page.PageUtil; @@ -33,6 +34,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.RequiredArgsConstructor; +import org.springframework.util.CollectionUtils; /** * 鏍哥畻鎶ュ憡 鏈嶅姟瀹炵幇绫� @@ -115,6 +117,13 @@ public Result page(CalculateReportQuery query) { IPage<CalculateReportVO> page = PageUtil.getPage(query, CalculateReportVO.class); baseMapper.page(query, page); + page.getRecords().stream().forEach(item -> { + if (Objects.isNull(item)) { + item.setCanPublish(Boolean.FALSE); + } else { + item.setCanPublish(Boolean.TRUE); + } + }); return Result.ok().data(page.getRecords()).total(page.getTotal()); } @@ -127,6 +136,13 @@ public Result detail(Long id) { // 鏄庣粏鍒楄〃 CalculateReportDetailVO detail = baseMapper.getById(id); + if (Objects.nonNull(detail) && ! CollectionUtils.isEmpty(detail.getRecordList())) { + if (CalculateReportStatusEnum.NOT_PUBLISH.equals(detail.getStatus())) { + detail.getRecordList().get(0).setLatest(Boolean.TRUE); + } else { + detail.getRecordList().get(0).setLatest(Boolean.FALSE); + } + } return Result.ok().data(detail); } @@ -138,9 +154,7 @@ public Result all() { List<CalculateReport> entities = baseMapper.selectList(null); List<CalculateReportVO> vos = entities.stream() - .map( - entity -> CalculateReportVO.getVoByEntity(entity, null) - ) + .map(entity -> CalculateReportVO.getVoByEntity(entity, null)) .collect(Collectors.toList()); return Result.ok().data(vos); } @@ -152,18 +166,36 @@ if (Objects.isNull(report)) { throw new RuntimeException("璇ユ牳绠楁姤鍛婁笉瀛樺湪"); } - // 绱姞寰楀埌鎵f鎬婚 - BigDecimal totalDeduct = form.getRecordList().stream() - .map(CalculateReportBackfillForm.RecordForm::getDeductMoney) - .reduce(BigDecimal.ZERO, BigDecimal::add); + if (CalculateReportStatusEnum.PUBLISHED.equals(report.getStatus())) { + throw new RuntimeException("鏈�鏂颁竴娆℃牳绠楁姤鍛婂凡缁忓彂甯冿紝鏃犳硶淇敼"); + } + CalculateReportBackfillForm.RecordForm latestRecord = form.getRecordList().get(0); + CalculateRecord beforeRecord = calculateRecordMapper.selectById(latestRecord.getId()); + if (Objects.isNull(beforeRecord)) { + throw new RuntimeException("鏈�杩戜竴娆℃牳绠楄褰曚笉瀛樺湪"); + } + // 璁$畻寰楀埌鎵f鎬婚锛堝彧绠楁渶杩戜竴鏉★級 + BigDecimal totalDeduct = report.getDeductMoney().subtract(latestRecord.getDeductMoney()).add(latestRecord.getDeductMoney()); 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(); - }); + + beforeRecord.setDeductMoney(latestRecord.getDeductMoney()); + calculateRecordMapper.updateById(beforeRecord); + return Result.ok("鎿嶄綔鎴愬姛"); + } + + @Override + public Result updatePublishStatus(Long reportId) { + CalculateReport report = baseMapper.selectById(reportId); + if (Objects.isNull(report)) { + throw new RuntimeException("璇ユ牳绠楁姤鍛婁笉瀛樺湪"); + } + if (CalculateReportStatusEnum.NOT_PUBLISH.equals(report.getStatus())) { + report.setStatus(CalculateReportStatusEnum.PUBLISHED); + } else if (CalculateReportStatusEnum.PUBLISHED.equals(report.getStatus())) { + report.setStatus(CalculateReportStatusEnum.NOT_PUBLISH); + } + baseMapper.updateById(report); return Result.ok("鎿嶄綔鎴愬姛"); } } -- Gitblit v1.8.0