From d8e1eb7f3698e648091e7323fe9de904510459a7 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期一, 04 八月 2025 13:34:52 +0800 Subject: [PATCH] yys 修改bug,优化接口 --- src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java | 47 ++++++++++++++++++++++++++++------------------- 1 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java index d346d41..606388c 100644 --- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java +++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java @@ -29,6 +29,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -78,6 +79,8 @@ @Override public HomeBusinessDto business() { + // 鏋勫缓缁撴灉 + HomeBusinessDto homeBusinessDto = new HomeBusinessDto(); LocalDate now = LocalDate.now(); YearMonth currentMonth = YearMonth.from(now); // 鍒涘缓LambdaQueryWrapper @@ -85,6 +88,9 @@ salesLedgerLambdaQueryWrapper.ge(SalesLedger::getEntryDate, currentMonth.atDay(1).atStartOfDay()) // 澶т簬绛変簬鏈湀绗竴澶� .lt(SalesLedger::getEntryDate, currentMonth.plusMonths(1).atDay(1).atStartOfDay()); // 灏忎簬涓嬫湀绗竴澶� List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(salesLedgerLambdaQueryWrapper); + if(CollectionUtils.isEmpty(salesLedgers)){ + return homeBusinessDto; + } // 鍚堣鍚堝悓閲戦 BigDecimal contractAmount = salesLedgers.stream().map(SalesLedger::getContractAmount) .filter(Objects::nonNull) @@ -97,7 +103,8 @@ BigDecimal noInvoiceAmountTotal = salesLedgerProducts.stream().map(SalesLedgerProduct::getNoInvoiceAmount) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); - + homeBusinessDto.setMonthSaleMoney(contractAmount.setScale(2, RoundingMode.HALF_UP).toString()); + homeBusinessDto.setMonthSaleHaveMoney(noInvoiceAmountTotal.setScale(2, RoundingMode.HALF_UP).toString()); // 鍒涘缓LambdaQueryWrapper LambdaQueryWrapper<PurchaseLedger> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.ge(PurchaseLedger::getEntryDate, currentMonth.atDay(1).atStartOfDay()) // 澶т簬绛変簬鏈湀绗竴澶� @@ -105,6 +112,9 @@ // 鎵ц鏌ヨ骞惰绠楁�诲拰 List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(queryWrapper); + if(CollectionUtils.isEmpty(purchaseLedgers)){ + return homeBusinessDto; + } LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductMapperLambdaQueryWrapperCopy = new LambdaQueryWrapper<SalesLedgerProduct>(); salesLedgerProductMapperLambdaQueryWrapper.eq(SalesLedgerProduct::getType, 2) @@ -142,15 +152,11 @@ .map(ProcurementRecordStorage::getInboundNum) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); - // 鏋勫缓缁撴灉 - HomeBusinessDto homeBusinessDto = new HomeBusinessDto(); - homeBusinessDto.setMonthSaleMoney(contractAmount); - homeBusinessDto.setMonthSaleHaveMoney(noInvoiceAmountTotal); - homeBusinessDto.setMonthPurchaseMoney(receiveAmount); - homeBusinessDto.setMonthPurchaseHaveMoney(unReceiptPaymentAmount); - homeBusinessDto.setInventoryNum(stock); - homeBusinessDto.setTodayInventoryNum(stockAmount1); + homeBusinessDto.setMonthPurchaseMoney(receiveAmount.setScale(2, RoundingMode.HALF_UP).toString()); + homeBusinessDto.setMonthPurchaseHaveMoney(unReceiptPaymentAmount.setScale(2, RoundingMode.HALF_UP).toString()); + homeBusinessDto.setInventoryNum(stock.setScale(2, RoundingMode.HALF_UP).toString()); + homeBusinessDto.setTodayInventoryNum(stockAmount1.setScale(2, RoundingMode.HALF_UP).toString()); return homeBusinessDto; } @@ -172,7 +178,7 @@ LocalDate endOfWeek = today.with(DayOfWeek.SUNDAY); List<SalesLedger> salesLedgers1 = salesLedgerMapper.selectList(new LambdaQueryWrapper<SalesLedger>() .ge(SalesLedger::getEntryDate, startOfWeek) // 澶т簬绛変簬鏈懆鍛ㄤ竴 - .gt(SalesLedger::getEntryDate, endOfWeek)); + .lt(SalesLedger::getEntryDate, endOfWeek.plusDays(1))); // 淇敼锛氫娇鐢� lt 骞跺姞涓婁竴澶╂潵鍖呭惈鍛ㄦ棩 BigDecimal weekContractAmount = salesLedgers1.stream().map(SalesLedger::getContractAmount) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); @@ -181,7 +187,7 @@ LocalDate lastYearEndOfWeek = today.minusYears(1).with(DayOfWeek.SUNDAY); List<SalesLedger> salesLedgers2 = salesLedgerMapper.selectList(new LambdaQueryWrapper<SalesLedger>() .ge(SalesLedger::getEntryDate, lastYearStartOfWeek) // 澶т簬绛変簬鍘诲勾鏈懆鍛ㄤ竴 - .gt(SalesLedger::getEntryDate, lastYearEndOfWeek)); + .lt(SalesLedger::getEntryDate, lastYearEndOfWeek.plusDays(1))); // 淇敼锛氫娇鐢� lt 骞跺姞涓婁竴澶╂潵鍖呭惈鍛ㄦ棩 BigDecimal lastYearWeekContractAmount = salesLedgers2.stream().map(SalesLedger::getContractAmount) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); @@ -199,18 +205,18 @@ LocalDate yesterday = today.minusDays(1); LocalDate plusDays = today.plusDays(1); List<SalesLedger> salesLedgers3 = salesLedgerMapper.selectList(new LambdaQueryWrapper<SalesLedger>() - .ge(SalesLedger::getEntryDate, today) // 澶т簬绛変簬鏄ㄥぉ - .lt(SalesLedger::getEntryDate, plusDays)); - BigDecimal yesterdayContractAmount = salesLedgers3.stream().map(SalesLedger::getContractAmount) + .ge(SalesLedger::getEntryDate, today) // 澶т簬绛変簬浠婂ぉ + .lt(SalesLedger::getEntryDate, plusDays)); // 淇敼锛氫娇鐢� lt 骞跺姞涓婁竴澶╂潵鍖呭惈褰撳ぉ + BigDecimal todayContractAmount = salesLedgers3.stream().map(SalesLedger::getContractAmount) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); List<SalesLedger> salesLedgers4 = salesLedgerMapper.selectList(new LambdaQueryWrapper<SalesLedger>() - .ge(SalesLedger::getEntryDate, yesterday) // 澶т簬绛変簬鍘诲勾鏄ㄥぉ - .lt(SalesLedger::getEntryDate, today)); + .ge(SalesLedger::getEntryDate, yesterday) // 澶т簬绛変簬鏄ㄥぉ + .lt(SalesLedger::getEntryDate, today)); // 淇敼锛氫娇鐢� lt 鑰屼笉鏄� gt BigDecimal lastYearYesterdayContractAmount = salesLedgers4.stream().map(SalesLedger::getContractAmount) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal subtract1 = yesterdayContractAmount.subtract(lastYearYesterdayContractAmount); + BigDecimal subtract1 = todayContractAmount.subtract(lastYearYesterdayContractAmount); // 淇敼锛氫娇鐢� todayContractAmount 鑰屼笉鏄� yesterdayContractAmount // 鏃ョ幆姣� String chain = ""; if(subtract1.compareTo(BigDecimal.ZERO) == 0 || lastYearYesterdayContractAmount.compareTo(BigDecimal.ZERO) == 0){ @@ -221,7 +227,8 @@ AnalysisCustomerContractAmountsDto analysisCustomerContractAmountsDto = new AnalysisCustomerContractAmountsDto(); - analysisCustomerContractAmountsDto.setSum(contractAmount); + // 淇敼锛氬皢鍚堝悓閲戦淇濈暀涓や綅灏忔暟 + analysisCustomerContractAmountsDto.setSum(contractAmount.setScale(2, RoundingMode.HALF_UP).toString()); analysisCustomerContractAmountsDto.setYny(weekYny); analysisCustomerContractAmountsDto.setChain(chain); @@ -231,7 +238,8 @@ collect.forEach((k,v)->{ MapDto mapDto = new MapDto(); mapDto.setName(k); - mapDto.setValue(v); + // 淇敼锛氬皢閲戦鍊间繚鐣欎袱浣嶅皬鏁� + mapDto.setValue(v.setScale(2, RoundingMode.HALF_UP).toString()); if(contractAmount.compareTo(new BigDecimal(0)) == 0){ mapDto.setRate("0"); }else{ @@ -243,6 +251,7 @@ return analysisCustomerContractAmountsDto; } + @Override public QualityStatisticsDto qualityStatistics() { // 鑾峰彇涓�鍛ㄦ暟鎹� -- Gitblit v1.9.3