mitao
2025-04-03 4e1d9877d6f2652dafb0fed1ee27f25ba11afcc6
Merge remote-tracking branch 'origin/dev' into dev
4个文件已修改
56 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCheckAcceptRecordController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCheckAcceptRecordController.java
@@ -7,15 +7,9 @@
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.model.TBill;
import com.ruoyi.system.model.TCheckAcceptRecord;
import com.ruoyi.system.model.TContract;
import com.ruoyi.system.model.THouse;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TCheckAcceptRecordQuery;
import com.ruoyi.system.service.TBillService;
import com.ruoyi.system.service.TCheckAcceptRecordService;
import com.ruoyi.system.service.TContractService;
import com.ruoyi.system.service.THouseService;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TCheckAcceptRecordVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -29,6 +23,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
/**
 * <p>
@@ -48,6 +43,8 @@
    private final THouseService houseService;
    @Autowired
    private TBillService billService;
    @Autowired
    private TTenantService tenantService;
    @Autowired
    public TCheckAcceptRecordController(TCheckAcceptRecordService checkAcceptRecordService, TContractService contractService, THouseService houseService) {
        this.checkAcceptRecordService = checkAcceptRecordService;
@@ -73,6 +70,10 @@
    public R<THouse> getHouseByContractId(@RequestParam String contractId) {
        TContract contract = contractService.getById(contractId);
        THouse house = houseService.getById(contract.getHouseId());
        TTenant tenant = tenantService.getById(contract.getTenantId());
        if(Objects.nonNull(tenant)){
            house.setTenantType(tenant.getTenantType());
        }
        return R.ok(house);
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -317,7 +317,6 @@
    @Log(title = "合同管理-确认结算", businessType =  BusinessType.UPDATE)
    @ApiOperation(value = "确认结算")
    @PostMapping(value = "/confirmSettlement")
    public R<Boolean> confirmSettlement(String id) {
        TContract contract = contractService.getById(id);
        contract.setStatus("8");
@@ -330,7 +329,12 @@
        for (TBill tBill : tBills) {
            tBill.setPayFeesStatus("5");
        }
        billService.updateBatchById(tBills);        return R.ok();
        billService.updateBatchById(tBills);
        // 将房屋改成待出租
        THouse house = houseService.getById(contract.getHouseId());
        house.setLeaseStatus("1");
        houseService.updateById(house);
        return R.ok();
    }
    @ApiOperation(value = "终止合同剩余未缴费账单列表")
    @PostMapping(value = "/contractBillList")
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java
@@ -1032,6 +1032,10 @@
                //更新合同结束时间
                contract.setEndTime(contract.getTerminateTime());
                contractService.updateById(contract);
                // 修改房屋状态
                THouse house = houseService.getById(contract.getHouseId());
                house.setLeaseStatus("1");
                houseService.updateById(house);
                TCheckAcceptRecord tCheckAcceptRecord = new TCheckAcceptRecord();
                tCheckAcceptRecord.setContractId(contract.getId());
ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java
@@ -2,6 +2,9 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.system.mapper.TBillMapper;
import com.ruoyi.system.model.TBill;
import com.ruoyi.system.model.TContract;
@@ -27,6 +30,8 @@
    private TContractService contractService;
    @Autowired
    private TBillMapper billMapper;
    @Autowired
    RedisCache redisCache;
    // 用于更新违约金账单
    // 每分钟执行一次的定时任务
@@ -55,13 +60,21 @@
                        billMapper.updateById(tBill);
                        continue;
                    }
                    BigDecimal money = tBill.getOutstandingMoney().multiply(new BigDecimal(100).add(proportion)).divide(new BigDecimal(100),2, BigDecimal.ROUND_DOWN);
                    tBill.setOverDays((int) l);
                    BigDecimal bigDecimal = tBill.getOutstandingMoney().multiply(proportion).setScale(2, BigDecimal.ROUND_DOWN);
                    tBill.setPayableFeesPenalty(tBill.getPayableFeesPenalty()!=null?tBill.getPayableFeesPenalty():new BigDecimal("0").add(bigDecimal));
                    tBill.setOutstandingMoney(money);
                    billMapper.updateById(tBill);
                    String requestId = UUID.fastUUID().toString();
                    String lockkey = CacheConstants.BILL_UPDATE_LOCK_KEY + tBill.getId();
                    boolean isok = redisCache.trylockLoop(lockkey, requestId, 60);
                    if (isok){
                        try {
                            BigDecimal money = tBill.getOutstandingMoney().multiply(new BigDecimal(100).add(proportion)).divide(new BigDecimal(100),2, BigDecimal.ROUND_DOWN);
                            tBill.setOverDays((int) l);
                            BigDecimal bigDecimal = tBill.getOutstandingMoney().multiply(proportion).setScale(2, BigDecimal.ROUND_DOWN);
                            tBill.setPayableFeesPenalty(tBill.getPayableFeesPenalty()!=null?tBill.getPayableFeesPenalty():new BigDecimal("0").add(bigDecimal));
                            tBill.setOutstandingMoney(money);
                            billMapper.updateById(tBill);
                        }finally {
                            redisCache.unlock(lockkey,requestId);
                        }
                    }
                }
            }
        } catch (Exception e) {