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/dto/HomeBusinessDto.java | 12 +++--- src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java | 2 src/main/java/com/ruoyi/home/dto/AnalysisCustomerContractAmountsDto.java | 2 src/main/resources/mapper/aftersalesservice/AfterSalesServiceMapper.xml | 3 + src/main/java/com/ruoyi/dto/MapDto.java | 2 src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml | 55 ++++++++++++++++++--------- src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java | 35 +++++++++-------- 7 files changed, 68 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/ruoyi/dto/MapDto.java b/src/main/java/com/ruoyi/dto/MapDto.java index f6822a5..4a8847c 100644 --- a/src/main/java/com/ruoyi/dto/MapDto.java +++ b/src/main/java/com/ruoyi/dto/MapDto.java @@ -18,7 +18,7 @@ private String name; @ApiModelProperty(value = "鏁伴噺") - private BigDecimal value; + private String value; @ApiModelProperty(value = "鍗犳瘮") private String rate; diff --git a/src/main/java/com/ruoyi/home/dto/AnalysisCustomerContractAmountsDto.java b/src/main/java/com/ruoyi/home/dto/AnalysisCustomerContractAmountsDto.java index 4801705..e126ff0 100644 --- a/src/main/java/com/ruoyi/home/dto/AnalysisCustomerContractAmountsDto.java +++ b/src/main/java/com/ruoyi/home/dto/AnalysisCustomerContractAmountsDto.java @@ -17,7 +17,7 @@ public class AnalysisCustomerContractAmountsDto { @ApiModelProperty(value = "鍚堝悓鎬婚噾棰�") - private BigDecimal sum; + private String sum; @ApiModelProperty(value = "鏃ョ幆姣�") private String chain; diff --git a/src/main/java/com/ruoyi/home/dto/HomeBusinessDto.java b/src/main/java/com/ruoyi/home/dto/HomeBusinessDto.java index 9acd9c6..6c5a20a 100644 --- a/src/main/java/com/ruoyi/home/dto/HomeBusinessDto.java +++ b/src/main/java/com/ruoyi/home/dto/HomeBusinessDto.java @@ -15,21 +15,21 @@ public class HomeBusinessDto { @ApiModelProperty("鏈湀閿�鍞噾棰�") - private BigDecimal monthSaleMoney; + private String monthSaleMoney = "0.00"; @ApiModelProperty("鏈湀閿�鍞湭寮�绁ㄩ噾棰�") - private BigDecimal monthSaleHaveMoney; + private String monthSaleHaveMoney = "0.00"; @ApiModelProperty("鏈湀閲囪喘閲戦") - private BigDecimal monthPurchaseMoney; + private String monthPurchaseMoney = "0.00"; @ApiModelProperty("鏈湀閲囪喘鏈紑绁ㄩ噾棰�") - private BigDecimal monthPurchaseHaveMoney; + private String monthPurchaseHaveMoney = "0.00"; @ApiModelProperty("褰撳墠搴撳瓨鏁伴噺") - private BigDecimal inventoryNum; + private String inventoryNum = "0.00"; @ApiModelProperty("浠婃棩搴撳瓨鏁伴噺") - private BigDecimal todayInventoryNum; + private String todayInventoryNum = "0.00"; } 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 08ff1ad..606388c 100644 --- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java +++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java @@ -103,8 +103,8 @@ BigDecimal noInvoiceAmountTotal = salesLedgerProducts.stream().map(SalesLedgerProduct::getNoInvoiceAmount) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); - homeBusinessDto.setMonthSaleMoney(contractAmount); - homeBusinessDto.setMonthSaleHaveMoney(noInvoiceAmountTotal); + 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()) // 澶т簬绛変簬鏈湀绗竴澶� @@ -153,10 +153,10 @@ .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); - 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; } @@ -178,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); @@ -187,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); @@ -205,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){ @@ -227,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); @@ -237,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{ @@ -249,6 +251,7 @@ return analysisCustomerContractAmountsDto; } + @Override public QualityStatisticsDto qualityStatistics() { // 鑾峰彇涓�鍛ㄦ暟鎹� diff --git a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java index b2ed2fb..0187823 100644 --- a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java +++ b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java @@ -166,7 +166,7 @@ @Override public IPage<InvoicePurchaseReportDto> listPurchaseReport(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto) { - + // 澧炲�肩◣ = 閿�鍞殑锛堝惈绋庢�讳环-涓嶅惈绋庢�讳环锛夊噺鍘婚噰璐殑锛堝惈绋庢�讳环-涓嶅惈绋庢�讳环锛� return invoicePurchaseMapper.selectPurchaseReport(page, invoicePurchaseReportDto); } diff --git a/src/main/resources/mapper/aftersalesservice/AfterSalesServiceMapper.xml b/src/main/resources/mapper/aftersalesservice/AfterSalesServiceMapper.xml index 21f05f0..41cd6ca 100644 --- a/src/main/resources/mapper/aftersalesservice/AfterSalesServiceMapper.xml +++ b/src/main/resources/mapper/aftersalesservice/AfterSalesServiceMapper.xml @@ -14,6 +14,9 @@ <if test="req.tenantId != null and req.tenantId != ''"> and tenant_id = #{req.tenantId} </if> + <if test="req.status != null and req.status != ''"> + and status = #{req.status} + </if> order by update_time desc </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml index 0b29502..413f293 100644 --- a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml +++ b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml @@ -6,29 +6,48 @@ <select id="selectPurchaseReport" resultType="com.ruoyi.purchase.dto.InvoicePurchaseReportDto"> - select A.*, - FORMAT(A.contract_amount-A.sale_tax_exclusive_total_price-A.purchase_amount+A.tax_exclusive_total_price,2) as balance_amount - from (select sl.customer_contract_no, + SELECT + A.*, + FORMAT(A.sales_tax_amount - A.purchase_tax_amount, 2) AS balance_amount + FROM ( + SELECT + sl.customer_contract_no, sl.id, - pl.id as pl_id, + pl.id AS pl_id, sl.customer_name, sl.project_name, - sl.contract_amount, - pl.contract_amount as purchase_amount, - sum(slp.tax_exclusive_total_price) /count(slp.id) as sale_tax_exclusive_total_price, - sum(slp1.tax_exclusive_total_price) as tax_exclusive_total_price, - (sl.contract_amount - pl.contract_amount) as balance, - CONCAT(FORMAT((sl.contract_amount - pl.contract_amount) / sl.contract_amount * 100, 2), - '%') AS balance_ratio - from purchase_ledger pl - left join sales_ledger sl on pl.sales_ledger_id = sl.id - left join sales_ledger_product slp on slp.sales_ledger_id = sl.id and slp.type = 1 - left join sales_ledger_product slp1 on slp1.sales_ledger_id = pl.id and slp1.type = 2 - group by sl.customer_contract_no, sl.customer_name, sl.project_name, sl.contract_amount, pl.contract_amount,sl.id,pl.id - having sl.customer_contract_no is not null) A + slp.tax_inclusive_total_price - slp.tax_exclusive_total_price AS contract_amount, + SUM(slp1.tax_inclusive_total_price - slp1.tax_exclusive_total_price) AS purchase_amount, + (slp.tax_exclusive_total_price) / COUNT(slp.id) AS sale_tax_exclusive_total_price, + SUM(slp1.tax_exclusive_total_price) AS tax_exclusive_total_price, + (slp.tax_inclusive_total_price - slp.tax_exclusive_total_price) - + SUM(slp1.tax_inclusive_total_price - slp1.tax_exclusive_total_price) AS balance, + CONCAT( + FORMAT( + ((slp.tax_inclusive_total_price - slp.tax_exclusive_total_price) - + SUM(slp1.tax_inclusive_total_price - slp1.tax_exclusive_total_price)) / + (slp.tax_inclusive_total_price - slp.tax_exclusive_total_price) * 100, + 2), + '%' + ) AS balance_ratio, + (slp.tax_inclusive_total_price - slp.tax_exclusive_total_price) AS sales_tax_amount, + SUM(slp1.tax_inclusive_total_price - slp1.tax_exclusive_total_price) AS purchase_tax_amount + FROM + purchase_ledger pl + LEFT JOIN + sales_ledger sl ON pl.sales_ledger_id = sl.id + LEFT JOIN + sales_ledger_product slp ON slp.sales_ledger_id = sl.id AND slp.type = 1 + LEFT JOIN + sales_ledger_product slp1 ON slp1.sales_ledger_id = pl.id AND slp1.type = 2 + GROUP BY + sl.customer_contract_no, sl.customer_name, sl.project_name, sl.id, pl.id + HAVING + sl.customer_contract_no IS NOT NULL + ) A <where> <if test="c.customerName != null and c.customerName != ''"> - and sl.customer_name like concat('%',#{c.customerName},'%') + AND A.customer_name LIKE CONCAT('%', #{c.customerName}, '%') </if> </where> </select> -- Gitblit v1.9.3