From 4e1d9877d6f2652dafb0fed1ee27f25ba11afcc6 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期四, 03 四月 2025 20:11:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java | 27 ++++++++++++++++++++------- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java | 8 ++++++-- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java | 4 ++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCheckAcceptRecordController.java | 17 +++++++++-------- 4 files changed, 39 insertions(+), 17 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCheckAcceptRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCheckAcceptRecordController.java index 695e91c..11f61d4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCheckAcceptRecordController.java +++ b/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); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java index 5c95dc4..007aa13 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java +++ b/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") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java index fbad782..d76f7f8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FlowListenerService.java +++ b/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()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java index 4e6e2f7..ffd0cea 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/task/utils/TaskUtil.java +++ b/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) { -- Gitblit v1.7.1