From 969a70f62ceb446537a644742f0e6b63073da897 Mon Sep 17 00:00:00 2001 From: zt Date: Fri, 22 Aug 2025 21:10:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MoneyBigScreenController.java | 44 ++++++++----------- .../dromara/ctr/domain/CtrIncomeContract.java | 13 ++++++ .../ctr/domain/bo/CtrIncomeContractBo.java | 11 +++++ .../ctr/domain/vo/CtrIncomeContractVo.java | 11 +++++ .../impl/CtrExpensesContractServiceImpl.java | 7 +++ .../impl/CtrIncomeContractServiceImpl.java | 7 +++ 6 files changed, 68 insertions(+), 25 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/MoneyBigScreenController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/MoneyBigScreenController.java index c4841859..25bccc31 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/MoneyBigScreenController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/MoneyBigScreenController.java @@ -114,7 +114,7 @@ public class MoneyBigScreenController { .eq(CtrIncomeContract::getProjectId, projectId) .last("limit 1") ); - if (contract != null) { + if (contract != null && contract.getPayRatio()!= null) { actualAmount = actualAmount.add(projectMonthlyAmountMap.get(projectId).multiply(contract.getPayRatio()).divide(HUNDRED)); } @@ -169,7 +169,7 @@ public class MoneyBigScreenController { .last("limit 1") ); - if (contract != null) { + if (contract != null && contract.getPayRatio()!= null) { actualAmount = actualAmount.add(projectAmountMap.get(contractCode).multiply(contract.getPayRatio()).divide(HUNDRED)); } @@ -311,16 +311,17 @@ public class MoneyBigScreenController { List moneyCostVos = new ArrayList<>(); - // 生成包含当前月在内的往前数7个月的月份列表 - List last7Months = new ArrayList<>(); + // 生成当年12个月的月份列表 YearMonth currentYearMonth = YearMonth.now(); + YearMonth firstMonthOfYear = currentYearMonth.withMonth(1); // 当年1月 - for (int i = 6; i >= 0; i--) { - last7Months.add(currentYearMonth.minusMonths(i)); + List currentYearMonths = new ArrayList<>(); + for (int i = 0; i < 12; i++) { + currentYearMonths.add(firstMonthOfYear.plusMonths(i)); } // 遍历每个月份,筛选对应的数据 - for (YearMonth yearMonth : last7Months) { + for (YearMonth yearMonth : currentYearMonths) { // 获取该月的第一天和最后一天 LocalDate startDate = yearMonth.atDay(1); LocalDate endDate = yearMonth.atEndOfMonth(); @@ -345,15 +346,13 @@ public class MoneyBigScreenController { BigDecimal incomeAmount = BigDecimal.ZERO; for (Long projectId : incomeGroupedByProject.keySet()) { - CtrIncomeContract contract = incomeContractService.getOne(Wrappers.lambdaQuery(CtrIncomeContract.class) .eq(CtrIncomeContract::getProjectId, projectId) .last("limit 1") ); - if (contract != null) { + if (contract != null && contract.getPayRatio()!= null) { incomeAmount = incomeAmount.add(incomeGroupedByProject.get(projectId).multiply(contract.getPayRatio()).divide(HUNDRED)); } - } // 筛选分包商结算数据(应付)并按合同编号分组统计金额 @@ -376,19 +375,16 @@ public class MoneyBigScreenController { BigDecimal expensesAmount = BigDecimal.ZERO; for (String contractCode : expenseGroupedByContract.keySet()) { - CtrExpensesContract contract = expensesContractService.getOne(Wrappers.lambdaQuery(CtrExpensesContract.class) .eq(CtrExpensesContract::getContractCode, contractCode) .last("limit 1") ); - if (contract != null) { + if (contract != null && contract.getPayRatio()!= null) { expensesAmount = expensesAmount.add(expenseGroupedByContract.get(contractCode).multiply(contract.getPayRatio()).divide(HUNDRED)); } - } - MoneyMonthVo monthData = new MoneyMonthVo( yearMonth.toString(), incomeAmount, @@ -413,16 +409,17 @@ public class MoneyBigScreenController { List moneyCostVos = new ArrayList<>(); - // 生成包含当前月在内的往前数7个月的月份列表 - List last7Months = new ArrayList<>(); + // 生成当年12个月的月份列表 YearMonth currentYearMonth = YearMonth.now(); + YearMonth firstMonthOfYear = currentYearMonth.withMonth(1); // 当年1月 - for (int i = 6; i >= 0; i--) { - last7Months.add(currentYearMonth.minusMonths(i)); + List currentYearMonths = new ArrayList<>(); + for (int i = 0; i < 12; i++) { + currentYearMonths.add(firstMonthOfYear.plusMonths(i)); } // 遍历每个月份,筛选对应的数据 - for (YearMonth yearMonth : last7Months) { + for (YearMonth yearMonth : currentYearMonths) { // 获取该月的第一天和最后一天 LocalDate startDate = yearMonth.atDay(1); LocalDate endDate = yearMonth.atEndOfMonth(); @@ -447,15 +444,13 @@ public class MoneyBigScreenController { BigDecimal incomeAmount = BigDecimal.ZERO; for (Long projectId : incomeGroupedByProject.keySet()) { - CtrIncomeContract contract = incomeContractService.getOne(Wrappers.lambdaQuery(CtrIncomeContract.class) .eq(CtrIncomeContract::getProjectId, projectId) .last("limit 1") ); - if (contract != null) { + if (contract != null && contract.getPayRatio()!= null) { incomeAmount = incomeAmount.add(incomeGroupedByProject.get(projectId).multiply(contract.getPayRatio()).divide(HUNDRED)); } - } // 筛选分包商结算数据(应付)并按合同编号分组统计金额 @@ -478,16 +473,14 @@ public class MoneyBigScreenController { BigDecimal expensesAmount = BigDecimal.ZERO; for (String contractCode : expenseGroupedByContract.keySet()) { - CtrExpensesContract contract = expensesContractService.getOne(Wrappers.lambdaQuery(CtrExpensesContract.class) .eq(CtrExpensesContract::getContractCode, contractCode) .last("limit 1") ); - if (contract != null) { + if (contract != null && contract.getPayRatio()!= null) { expensesAmount = expensesAmount.add(expenseGroupedByContract.get(contractCode).multiply(contract.getPayRatio()).divide(HUNDRED)); } - } MoneyMonthVo monthData = new MoneyMonthVo( @@ -501,6 +494,7 @@ public class MoneyBigScreenController { } return R.ok(moneyCostVos); + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrIncomeContract.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrIncomeContract.java index a3e8e5e7..2344668f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrIncomeContract.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/CtrIncomeContract.java @@ -88,4 +88,17 @@ public class CtrIncomeContract extends BaseEntity { */ private BigDecimal payRatio; + + /** + * 合同名称 + */ + private String contractName; + + /** + * 合同名称 + */ + private Boolean isUpdate; + + + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrIncomeContractBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrIncomeContractBo.java index a6d96e15..c971c2b1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrIncomeContractBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/bo/CtrIncomeContractBo.java @@ -93,4 +93,15 @@ public class CtrIncomeContractBo extends BaseEntity { * 付款比例 */ private BigDecimal payRatio; + + + /** + * 合同名称 + */ + private String contractName; + + /** + * 合同名称 + */ + private Boolean isUpdate; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrIncomeContractVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrIncomeContractVo.java index 2d12ec90..ee20701d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrIncomeContractVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/domain/vo/CtrIncomeContractVo.java @@ -111,4 +111,15 @@ public class CtrIncomeContractVo implements Serializable { * 付款比例 */ private BigDecimal payRatio; + + + /** + * 合同名称 + */ + private String contractName; + + /** + * 能否修改 + */ + private Boolean isUpdate; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrExpensesContractServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrExpensesContractServiceImpl.java index 7597b859..b5d35586 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrExpensesContractServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrExpensesContractServiceImpl.java @@ -124,6 +124,13 @@ public class CtrExpensesContractServiceImpl extends ServiceImpl convert = MapstructUtils.convert(bo.getFileList(), CtrFile.class); + convert.forEach(item -> item.setContractId(update.getId())); + fileService.saveBatch(convert); + } + return baseMapper.updateById(update) > 0; } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrIncomeContractServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrIncomeContractServiceImpl.java index 0f5e92ec..8c1166ef 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrIncomeContractServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/ctr/service/impl/CtrIncomeContractServiceImpl.java @@ -101,6 +101,7 @@ public class CtrIncomeContractServiceImpl extends ServiceImpl 0; if(CollectionUtil.isNotEmpty(bo.getFileList())){ @@ -123,7 +124,13 @@ public class CtrIncomeContractServiceImpl extends ServiceImpl convert = MapstructUtils.convert(bo.getFileList(), CtrFile.class); + convert.forEach(item -> item.setContractId(update.getId())); + fileService.saveBatch(convert); + } return baseMapper.updateById(update) > 0; }