java110
2025-05-15 e4b421a2a680a9e7cb5f7a9c0cab93eb43802d93
service-fee/src/main/java/com/java110/fee/feeMonth/PayFeeMonthHelp.java
@@ -97,17 +97,7 @@
        Map feePriceAll = computeFeeSMOImpl.getFeePrice(feeDto);
        Double feePrice = Double.parseDouble(feePriceAll.get("feePrice").toString());
        //todo 如果是一次性费用 除以
//        if (!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getPayerObjType())) {
//            return feePrice;
//        }
//        double maxMonth = Math.ceil(computeFeeSMOImpl.dayCompare(feeDto.getStartTime(), feeDto.getEndTime()));
//        if (maxMonth <= 0) {
//            return feePrice;
//
//        }
//        BigDecimal feePriceDec = new BigDecimal(feePrice).divide(new BigDecimal(maxMonth), 2, BigDecimal.ROUND_HALF_UP);
//        feePrice = feePriceDec.doubleValue();
        return feePrice;
    }
@@ -159,7 +149,7 @@
     * @param deadlineTime
     */
    @Override
    public void waitDispersedOweFee(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto, Double feePrice, Date deadlineTime, double owePrice) {
    public void waitDispersedOweFee(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto, Double feePrice, Date deadlineTime, double oweMonth) {
        // todo 清理 detailId 为-1 的数据
@@ -178,7 +168,7 @@
        waitDispersedOweFeeCycleNormalMonth(feeDto,payFeeMonthOwnerDto,feePrice,deadlineTime);
        // 一次性或者非自然月处理
        waitDispersedOweFeeOnceUnNormalMonth(feeDto,payFeeMonthOwnerDto,deadlineTime,owePrice);
        waitDispersedOweFeeOnceUnNormalMonth(feeDto,payFeeMonthOwnerDto,feePrice,deadlineTime,oweMonth);
    }
@@ -196,7 +186,7 @@
            return;
        }
        // 不是自然月 费用直接返回
        if(DateUtil.getMonthDay(feeDto.getStartTime()) !=1){
        if(DateUtil.getDay(feeDto.getStartTime()) !=1){
            return;
        }
        List<PayFeeDetailMonthPo> payFeeDetailMonthPos = new ArrayList<>();
@@ -272,10 +262,10 @@
     * @param deadlineTime
     * @param oweMonth
     */
    private void waitDispersedOweFeeOnceUnNormalMonth(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto, Date deadlineTime, double oweMonth) {
    private void waitDispersedOweFeeOnceUnNormalMonth(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto,double feePrice, Date deadlineTime, double oweMonth) {
        // 不是一次性费用 并且是 自然月就返回
        if(!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag()) && DateUtil.getMonthDay(feeDto.getStartTime()) == 1){
        if(!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag()) && DateUtil.getDay(feeDto.getStartTime()) == 1){
            return;
        }
        List<PayFeeDetailMonthPo> payFeeDetailMonthPos = new ArrayList<>();
@@ -283,7 +273,8 @@
        Date startTime = DateUtil.timeToDate(feeDto.getEndTime());
        Date endTime = DateUtil.deadTimeToDate(deadlineTime);
        BigDecimal receivableAmount = new BigDecimal(oweMonth);
        BigDecimal receivableAmount = new BigDecimal(feePrice).multiply(new BigDecimal(oweMonth)).setScale(8,BigDecimal.ROUND_HALF_UP);
        BigDecimal dayReceivableAmount = null;
@@ -456,6 +447,9 @@
                getDiscountAmount(Double.parseDouble(tmpPayFeeDetailMonthPo.getReceivableAmount()),
                        Double.parseDouble(tmpPayFeeDetailMonthPo.getReceivedAmount()),
                        calendar.getTime(), feeDto) + "");
        if (feeDetailDto == null) {
            tmpPayFeeDetailMonthPo.setDiscountAmount("0");
        }
        tmpPayFeeDetailMonthPo.setMonthId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_monthId, true));
        tmpPayFeeDetailMonthPo.setRemark("程序计算生成");
        tmpPayFeeDetailMonthPo.setObjName(payFeeMonthOwnerDto.getObjName());