| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.enums.BillTypeEnum; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.system.model.TBill; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.*; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * @author mitao |
| | |
| | | .filter(item -> !item.getPayFeesStatus().equals("5")) |
| | | .map(TBill::getPayableFeesMoney) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .divide(new BigDecimal("10000"),2, RoundingMode.HALF_UP); |
| | | .divide(new BigDecimal("10000"),2, RoundingMode.DOWN); |
| | | vo.setTotalReceivableRent(totalReceivableRent); |
| | | //总计已收租金 |
| | | BigDecimal totalReceivedRent = billList.stream() |
| | | .map(TBill::getPayFeesMoney) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .divide(new BigDecimal("10000"),2, RoundingMode.HALF_UP); |
| | | .divide(new BigDecimal("10000"),2, RoundingMode.DOWN); |
| | | vo.setTotalReceivedRent(totalReceivedRent); |
| | | //本月新增租户数 |
| | | Integer newTenantCount = tContractService.getCurrentMonthRentCount(businessDeptId); |
| | |
| | | BigDecimal totalRentPaid = currentQuarterBillList.stream() |
| | | .map(TBill::getPayFeesMoney) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .divide(new BigDecimal("10000"),2, RoundingMode.HALF_UP); |
| | | .divide(new BigDecimal("10000"),2, RoundingMode.DOWN); |
| | | vo.setTotalRentPaid(totalRentPaid); |
| | | //本季度应交租金 |
| | | BigDecimal totalRentShould = currentQuarterBillList.stream() |
| | | .filter(item -> !item.getPayFeesStatus().equals("5")) |
| | | .map(TBill::getPayableFeesMoney) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .divide(new BigDecimal("10000"),2, RoundingMode.HALF_UP); |
| | | .divide(new BigDecimal("10000"),2, RoundingMode.DOWN); |
| | | vo.setTotalRentShould(totalRentShould); |
| | | //本季度欠费 |
| | | BigDecimal totalRentOwe = currentQuarterBillList.stream() |
| | | .map(TBill::getOutstandingMoney) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.HALF_UP); |
| | | .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.DOWN); |
| | | vo.setTotalRentOwe(totalRentOwe); |
| | | //总计欠费 |
| | | BigDecimal totalRentOweAll = billList.stream() |
| | | .map(TBill::getOutstandingMoney) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.HALF_UP); |
| | | .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.DOWN); |
| | | vo.setTotalRentOweAll(totalRentOweAll); |
| | | return vo; |
| | | } |
| | |
| | | .map(TBill::getPayFeesMoney) |
| | | .filter(Objects::nonNull) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.HALF_UP); |
| | | .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.DOWN); |
| | | |
| | | // 计算季度欠费总和 |
| | | BigDecimal quarterOutstanding = quarterBills.stream() |
| | | .map(TBill::getOutstandingMoney) |
| | | .filter(Objects::nonNull) |
| | | .reduce(BigDecimal.ZERO, BigDecimal::add) |
| | | .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.HALF_UP); |
| | | .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.DOWN); |
| | | |
| | | // 生成季度标签 (格式: YY-MM月) |
| | | Calendar cal = Calendar.getInstance(); |
| | |
| | | |
| | | List<TContract> contracts = contractService.list(new LambdaQueryWrapper<TContract>() |
| | | .eq(!"0".equals(businessDeptId), TContract::getBusinessDeptId, businessDeptId) |
| | | .eq(TContract::getPayType, 1) |
| | | .eq(TContract::getPayType, 2) |
| | | .isNotNull(TContract::getSignTime) |
| | | .between(TContract::getSignTime, quarterStart, quarterEnd) |
| | | .orderByAsc(TContract::getSignTime)); |