1
zj
2025-11-21 2ec5c14a87bce4cb6ccba7a1bd87708bcce055a9
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/MedicalInsuranceAccountServiceImpl.java
@@ -82,25 +82,25 @@
                    return Result.error("你的保险额度已领取完!");
                }
                // 计算剩余天数
                long remainingDays = ChronoUnit.DAYS.between(now, medicalInsuranceAccount.getExpiryDate()) + 1;
                // 计算每日金额
                BigDecimal dailyAmount = calculateDailyAmount(
                        medicalInsuranceAccount.getTotalQuota(), (int) remainingDays);
                // 如果账户余额不足,则领取剩余全部金额
                if (medicalInsuranceAccount.getAmountClaimed().compareTo(dailyAmount) < 0) {
                    dailyAmount = medicalInsuranceAccount.getAmountClaimed();
                }
                // 更新待领金额
                medicalInsuranceAccount.setAmountClaimed(medicalInsuranceAccount.getAmountClaimed().subtract(dailyAmount));
//                // 计算剩余天数
//                long remainingDays = ChronoUnit.DAYS.between(now, medicalInsuranceAccount.getExpiryDate()) + 1;
//
//                // 计算每日金额
//                BigDecimal dailyAmount = calculateDailyAmount(
//                        medicalInsuranceAccount.getTotalQuota(), (int) remainingDays);
//
//                // 如果账户余额不足,则领取剩余全部金额
//                if (medicalInsuranceAccount.getAmountClaimed().compareTo(dailyAmount) < 0) {
//                    dailyAmount = medicalInsuranceAccount.getAmountClaimed();
//                }
//
//                // 更新待领金额
//                medicalInsuranceAccount.setAmountClaimed(medicalInsuranceAccount.getAmountClaimed().subtract(dailyAmount));
                // 更新已领取金额
                BigDecimal currentAmountReceived = medicalInsuranceAccount.getAlreadyReceived() != null ?
                        medicalInsuranceAccount.getAlreadyReceived(): BigDecimal.ZERO;
                medicalInsuranceAccount.setAlreadyReceived(currentAmountReceived.add(dailyAmount));
                medicalInsuranceAccount.setAlreadyReceived(currentAmountReceived.add(medicalInsuranceAccount.getAmountClaimed()));
                medicalInsuranceAccountMapper.updateById(medicalInsuranceAccount);
@@ -109,7 +109,7 @@
                claim.setAccountId(medicalInsuranceAccount.getId());
                claim.setUserId(userAccount.getId());
                claim.setClaimDate(today);
                claim.setClaimAmount(dailyAmount);
                claim.setClaimAmount(medicalInsuranceAccount.getAmountClaimed());
                claim.setCreatedAt(new Date());
                medicalInsuranceDailyClaimMapper.insert(claim);
                return Result.success("领取成功");