From 03df670a1dfbcae8031e84e15dff0b77365f0af6 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期四, 14 八月 2025 16:39:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into pim_zss --- src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java | 79 +++++++++++++++++++++++++++++---------- 1 files changed, 58 insertions(+), 21 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..7dea6df 100644 --- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java +++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java @@ -8,6 +8,8 @@ import com.ruoyi.framework.security.LoginUser; import com.ruoyi.home.dto.*; import com.ruoyi.home.service.HomeService; +import com.ruoyi.lavorissue.mapper.LavorIssueMapper; +import com.ruoyi.lavorissue.pojo.LaborIssue; import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper; import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper; import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut; @@ -29,9 +31,12 @@ 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; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.*; import java.time.temporal.TemporalAdjusters; import java.util.*; @@ -74,10 +79,15 @@ private PaymentRegistrationMapper paymentRegistrationMapper; @Autowired + private LavorIssueMapper lavorIssueMapper; + + @Autowired private SysDeptMapper sysDeptMapper; @Override public HomeBusinessDto business() { + // 鏋勫缓缁撴灉 + HomeBusinessDto homeBusinessDto = new HomeBusinessDto(); LocalDate now = LocalDate.now(); YearMonth currentMonth = YearMonth.from(now); // 鍒涘缓LambdaQueryWrapper @@ -85,6 +95,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 +110,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 +119,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 +159,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 +185,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 +194,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 +212,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 +234,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 +245,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{ @@ -242,6 +257,7 @@ analysisCustomerContractAmountsDto.setItem(mapDtos); return analysisCustomerContractAmountsDto; } + @Override public QualityStatisticsDto qualityStatistics() { @@ -293,14 +309,35 @@ } @Override - public List<ApproveProcess> todos() { + public List<ApproveProcess> todos() throws ParseException { LoginUser loginUser = SecurityUtils.getLoginUser(); LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>(); approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveDelete, 0) .eq(ApproveProcess::getApproveUserCurrentId, loginUser.getUserId()) .ne(ApproveProcess::getApproveStatus, 2) .eq(ApproveProcess::getTenantId, loginUser.getTenantId()); - return approveProcessMapper.selectList(approveProcessLambdaQueryWrapper); + List<ApproveProcess> approveProcesses = approveProcessMapper.selectList(approveProcessLambdaQueryWrapper); + if(CollectionUtils.isEmpty(approveProcesses)){ + approveProcesses = new ArrayList<>(); + } + // 鏌ヨ鏈鐢ㄥ姵淇濊褰� + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + + LaborIssue laborIssue1 = new LaborIssue(); + laborIssue1.setAdoptedDate(new Date()); + laborIssue1.setIssueDate(sdf.parse(sdf.format(new Date()))); + List<LaborIssue> laborIssues = lavorIssueMapper.list(laborIssue1); + if(!CollectionUtils.isEmpty(laborIssues)){ + for (LaborIssue laborIssue : laborIssues) { + ApproveProcess approveProcess = new ApproveProcess(); + approveProcess.setApproveId(laborIssue.getOrderNo()); + approveProcess.setApproveDeptName(sysDeptMapper.selectDeptById(loginUser.getTenantId()).getDeptName()); + approveProcess.setApproveTime(laborIssue.getIssueDate()); + approveProcess.setApproveReason(laborIssue.getDictTypeName() + "-" + laborIssue.getDictName() + "瓒呮椂鏈鍙�"); + approveProcesses.add(approveProcess); + } + } + return approveProcesses; } /** -- Gitblit v1.9.3