From d66b806d685672f2f817986e89f69fb09d130f11 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期三, 09 四月 2025 18:02:32 +0800 Subject: [PATCH] Merge branch 'xizang-changyun' of https://gitee.com/xiaochen991015/xizang into dev --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java | 73 +++++++++++++++++++++++++++++++----- 1 files changed, 63 insertions(+), 10 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java index a5aaeda..dcc56e1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java @@ -7,11 +7,7 @@ import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.enums.DisabledEnum; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.OrderNos; -import com.ruoyi.common.utils.SmsUtil; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.TencentMailUtil; +import com.ruoyi.common.utils.*; import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.system.dto.BillStatisticsDto; import com.ruoyi.system.dto.CachPayDto; @@ -41,6 +37,7 @@ import com.taxi591.bankapi.dto.ChargeBillRequest; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; +import org.joda.time.LocalDateTime; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -106,6 +103,12 @@ public PageInfo<TBillDto> queryPage(TBillQuery query){ PageInfo<TBill> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); PageInfo<TBillDto> info = tBillMapper.page(pageInfo, query); + return info; + } + + public PageInfo<TBillDto> queryPageForApplet(TBillQuery query){ + PageInfo<TBill> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); + PageInfo<TBillDto> info = tBillMapper.pageForApplet(pageInfo, query); return info; } @@ -183,6 +186,7 @@ BigDecimal outstand = presist.getPayableFeesMoney() .add(save.getPayableFeesPenalty()) .subtract(presist.getPayFeesMoney()); + save.setOutstandingMoney(outstand); } //处理缴费金额 @@ -569,12 +573,12 @@ } @Override - public BillStatisticsDto statistics(String busDeptId) { + public BillStatisticsDto statistics(TBillQuery query) { BillStatisticsDto dto = new BillStatisticsDto(); - dto.setRent(getBaseMapper().statisticsAllRent(busDeptId)); - dto.setNopay(getBaseMapper().statisticsNoPay(busDeptId)); - dto.setPayed(getBaseMapper().statisticsPayed(busDeptId)); - dto.setOverdue(getBaseMapper().statisticsOverdue(busDeptId)); + dto.setRent(getBaseMapper().statisticsAllRent(query)); + dto.setNopay(getBaseMapper().statisticsNoPay(query)); + dto.setPayed(getBaseMapper().statisticsPayed(query)); + dto.setOverdue(getBaseMapper().statisticsOverdue(query)); return dto; } @@ -612,4 +616,53 @@ public List<TBill> getJiFuBillListByTime(String businessDeptId, Date first, Date last) { return baseMapper.getJiFuBillList(businessDeptId,first,last); } + + @Override + public void editAmount(TbillSaveDto bill) { + String requestId = UUID.fastUUID().toString(); + String lockkey = CacheConstants.BILL_UPDATE_LOCK_KEY + bill.getId(); + boolean isok = redisCache.trylockLoop(lockkey, requestId, 60); + if (isok){ + try { + TBill presist = getById(bill.getId()); + TBill save = new TBill(); + save.setId(bill.getId()); + BigDecimal preOutstand = presist.getOutstandingMoney(); + // 如果传入的金额小于0,则是扣减,如果大于0,是增加金额,增加金额只加入欠费金额中 + if (bill.getEditAmount().compareTo(BigDecimal.ZERO)<0 + && presist.getPayableFeesPenalty().compareTo(BigDecimal.ZERO)>0){ + BigDecimal prePayableFeesPenalty = presist.getPayableFeesPenalty(); + //违约金大于调整金额,够减 + if (prePayableFeesPenalty.compareTo(bill.getEditAmount().abs())>=0){ + BigDecimal afterPenalty = prePayableFeesPenalty.add(bill.getEditAmount()); + save.setPayableFeesPenalty(afterPenalty); + }else{ + BigDecimal afterPenalty = BigDecimal.ZERO; + save.setPayableFeesPenalty(afterPenalty); + } + } + BigDecimal afterOutstand = preOutstand.add(bill.getEditAmount()); + save.setOutstandingMoney(afterOutstand); + updateById(save); + }finally { + redisCache.unlock(lockkey,requestId); + } + } + + //todo 记录金额修改记录 +// TFlowManagement flow = new TFlowManagement(); +// flow.setPayType(3); +// flow.setPayer("管理员修改"); +// flow.setBusinessDeptId(presist.getBusinessDeptId()); +// flow.setPayTime(DateUtils.dateToLocalDateTime(new Date())); +// flow.setSysSerialNumber(OrderNos.getDid(30)); +// flow.setFlowType(1); +// flow.setPaymentBillId(back.getId()); +// flow.setDeductionMoney(back.getDeductionMoney()); +// flow.setFlowMoney(save.getOutstandingMoney()); +// flow.setRemainingMoney(back.getOutstandingMoney()); +// flow.setPreOutstand(back.getPreOutstand()); +// flow.setCreateBy(SecurityUtils.getUsername()); +// tFlowManagementService.save(flow); + } } -- Gitblit v1.7.1