From eb806b5ec0bb72536e78c1a7fcffb94bcd24cbbe Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期五, 26 四月 2024 18:24:27 +0800 Subject: [PATCH] 考核结果应用规则(算钱)新增、展示 --- ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java | 75 ++++++++++++++++++++++++++----------- 1 files changed, 53 insertions(+), 22 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 99edde0..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 @@ -5,6 +5,7 @@ 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; @@ -16,6 +17,9 @@ import java.math.BigDecimal; 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; @@ -30,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; /** * 鏍哥畻鎶ュ憡 鏈嶅姟瀹炵幇绫� @@ -83,7 +88,7 @@ * @return */ @Override - public Result remove(List<String> ids) { + public Result remove(List<Long> ids) { if(baseMapper.deleteBatchIds(ids) > 0) { return Result.ok("鍒犻櫎鎴愬姛"); } @@ -96,7 +101,7 @@ * @return */ @Override - public Result removeById(String id) { + public Result removeById(Long id) { if(baseMapper.deleteById(id) > 0) { return Result.ok("鍒犻櫎鎴愬姛"); } @@ -112,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()); } @@ -121,14 +133,17 @@ * @return */ @Override - public Result detail(String id) { - CalculateReport entity = baseMapper.selectById(id); - Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); - CalculateReportVO vo = CalculateReportVO.getVoByEntity(entity, null); + public Result detail(Long id) { // 鏄庣粏鍒楄〃 - List<CalculateRecordVO> recordList = calculateRecordMapper.getByContractId(entity.getContractId()); - vo.setRecordList(recordList); - return Result.ok().data(vo); + 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); } /** @@ -139,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); } @@ -153,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