From e23edcf2619ad46fd77a710fca6c21de78234bc0 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 07 一月 2025 17:33:06 +0800 Subject: [PATCH] 核算重构完成 --- ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java | 41 ++++++++++++++++++++++++++++++----------- 1 files changed, 30 insertions(+), 11 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 839dde9..5921403 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 @@ -16,14 +16,18 @@ import com.ycl.platform.domain.query.CalculateReportQuery; import com.ycl.platform.domain.vo.CalculateReportDetailVO; import com.ycl.platform.domain.vo.CalculateReportVO; +import com.ycl.platform.domain.vo.ContractResultVO; import com.ycl.platform.mapper.CalculateRecordMapper; import com.ycl.platform.mapper.CalculateReportMapper; import com.ycl.platform.service.CalculateReportService; import com.ycl.platform.service.ICalculateRuleService; import com.ycl.system.Result; +import com.ycl.system.entity.SysRole; +import com.ycl.system.entity.SysUser; import com.ycl.system.page.PageUtil; import com.ycl.utils.SecurityUtils; import enumeration.general.CalculateReportStatusEnum; +import enumeration.general.PublishType; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -34,6 +38,7 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; +import java.math.RoundingMode; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Date; @@ -125,7 +130,10 @@ @Override public Result page(CalculateReportQuery query) { IPage<CalculateReportVO> page = PageUtil.getPage(query, CalculateReportVO.class); + //鍙兘鐪嬭嚜宸卞崟浣� query.setUnitId(SecurityUtils.getUnitId()); + //鍙兘鐪嬪凡鍙戝竷 + roleControl(query); baseMapper.page(query, page); page.getRecords().stream().forEach(item -> { if (Objects.isNull(item)) { @@ -139,23 +147,29 @@ /** * 鏍规嵁id鏌ユ壘 - * @param id + * @param * @return */ @Override public Result detail(CalculateReportQuery query) { + roleControl(query); // 鏄庣粏鍒楄〃 CalculateReportDetailVO detail = baseMapper.getById(query); - 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); } + private void roleControl(CalculateReportQuery query) { + List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles(); + SysUser user = SecurityUtils.getLoginUser().getUser(); + if (!user.isAdmin()) { + for (SysRole role : roles) { + //鑿滃崟鐨勫湴鏂瑰鍔犱簡涓�涓寜閽紝瑙掕壊鏉冮檺缂栬緫濡傛灉鍕句笂浜嗚鏄庡彧鑳芥煡鐪嬪凡鍙戝竷 + if (role.getPermissions().contains("check:contract:role:publish")) { + query.setStatus(PublishType.PUBLISHED.getCode()); + } + } + } + } /** * 鍒楄〃 * @return @@ -211,13 +225,18 @@ @Override @SneakyThrows - public void export(Integer contractId, HttpServletResponse response) { + public void export(Integer calculateId,Integer contractId, HttpServletResponse response) { // 鑾峰彇鏁版嵁 - List<CalculateExport> list = baseMapper.exportData(contractId); + List<CalculateExport> list = baseMapper.exportData(calculateId); CalculateExport calculateExport = new CalculateExport(); calculateExport.setRuleName("鍚堣"); calculateExport.setNum(list.stream().mapToInt(CalculateExport::getNum).sum()); - calculateExport.setScore(100 + list.stream().mapToInt(CalculateExport::getScore).sum()); + + calculateExport.setScore(list.stream() + .map(CalculateExport::getScore) + .reduce(BigDecimal.ZERO, BigDecimal::add) // 璁$畻鎬诲拰 + .add(BigDecimal.valueOf(100)) // 鍔犱笂100 + .setScale(1, RoundingMode.HALF_UP)); list.add(calculateExport); // 鑾峰彇瑙勫垯 List<CalculateRule> ruleList = calculateRuleService.list(new LambdaQueryWrapper<CalculateRule>().eq(CalculateRule::getContractId, contractId)); -- Gitblit v1.8.0