From 5fa6e6f8410ef9d057174bcff2a3c5038c54a551 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期日, 27 四月 2025 18:41:20 +0800
Subject: [PATCH] bug修改
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java | 136 +++++++++++++++++++++++++++++++++++++++++----
1 files changed, 124 insertions(+), 12 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 adb9fe4..23c3862 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
@@ -1,24 +1,43 @@
package com.ruoyi.system.service.impl;
-import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
-import com.ruoyi.common.config.SmsProperties;
import com.ruoyi.common.constant.AmountConstant;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.enums.DisabledEnum;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.*;
import com.ruoyi.common.utils.uuid.UUID;
-import com.ruoyi.system.dto.*;
+import com.ruoyi.system.dto.BillStatisticsDto;
+import com.ruoyi.system.dto.CachPayDto;
+import com.ruoyi.system.dto.OfflinePayCheckDto;
+import com.ruoyi.system.dto.SmsByBillDto;
+import com.ruoyi.system.dto.TBillDto;
+import com.ruoyi.system.dto.TbillSaveDto;
import com.ruoyi.system.mapper.TBillMapper;
-import com.ruoyi.system.model.*;
+import com.ruoyi.system.model.TBankFlow;
+import com.ruoyi.system.model.TBill;
+import com.ruoyi.system.model.TBillDetail;
+import com.ruoyi.system.model.TFlowManagement;
+import com.ruoyi.system.model.TInvoiceToBill;
+import com.ruoyi.system.model.TOrderBill;
+import com.ruoyi.system.model.TPayOrder;
import com.ruoyi.system.query.TBillQuery;
import com.ruoyi.system.query.TInvoiceToBillQuery;
-import com.ruoyi.system.service.*;
+import com.ruoyi.system.service.TBankFlowService;
+import com.ruoyi.system.service.TBillConfirmService;
+import com.ruoyi.system.service.TBillDetailService;
+import com.ruoyi.system.service.TBillService;
+import com.ruoyi.system.service.TFlowManagementService;
+import com.ruoyi.system.service.TInvoiceToBillService;
+import com.ruoyi.system.service.TOrderBillService;
+import com.ruoyi.system.service.TPayOrderService;
+import com.ruoyi.system.vo.ScreenRentRankVO;
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;
@@ -28,7 +47,6 @@
import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import java.text.ParseException;
-import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
@@ -88,6 +106,12 @@
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;
+ }
+
@Override
public List<String> getBillIds(TBillQuery query) {
List<TBillDto> billDtos = tBillMapper.getBillList(query);
@@ -130,6 +154,7 @@
if (presist.getPayFeesStatus().equals("3")){
throw new ServiceException("该账单已缴费完成");
}
+
switch (type){
// 仅更新除金额字段外的属性
case 1:
@@ -162,6 +187,7 @@
BigDecimal outstand = presist.getPayableFeesMoney()
.add(save.getPayableFeesPenalty())
.subtract(presist.getPayFeesMoney());
+
save.setOutstandingMoney(outstand);
}
//处理缴费金额
@@ -175,7 +201,7 @@
.subtract(save.getPayFeesMoney());
save.setOutstandingMoney(outstand);
//抵扣金额就是缴费金额
- save.setDeductionMoney(tBill.getPayableFeesMoney());
+ save.setDeductionMoney(tBill.getPayFeesMoney());
save.setPreOutstand(presist.getOutstandingMoney());
if (outstand.compareTo(BigDecimal.ZERO)<=0){
save.setPayFeesStatus("3");
@@ -185,6 +211,7 @@
break;
}
+ save.setBusinessDeptId(presist.getBusinessDeptId());
updateById(save);
return save;
}finally {
@@ -227,6 +254,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
public void saveBill(TbillSaveDto bill) {
+ bill.setManualAddition(DisabledEnum.YES.getCode());
save(bill);
if (bill.getBillType().equals("3")){
if (bill.getDetails()==null || bill.getDetails().size()==0){
@@ -281,6 +309,7 @@
TFlowManagement save = new TFlowManagement();
save.setPayType(3);
save.setPayer(dto.getPayer());
+ save.setBusinessDeptId(bill.getBusinessDeptId());
save.setPayTime(bankflow.getPayTime());
save.setSysSerialNumber(OrderNos.getDid(30));
save.setBankSerialNumber(bankflow.getBankSerialNumber());
@@ -306,6 +335,7 @@
save.setPayType(3);
save.setPayer(dto.getPayer());
save.setPayTime(billSave.getPayFeesTime());
+ save.setBusinessDeptId(bill.getBusinessDeptId());
save.setSysSerialNumber(OrderNos.getDid(30));
save.setFlowType(1);
save.setPaymentBillId(back.getId());
@@ -362,6 +392,7 @@
TFlowManagement saveFlow = new TFlowManagement();
saveFlow.setPayType(1);
saveFlow.setPayer(order.getUserId());
+ saveFlow.setBusinessDeptId(bill.getBusinessDeptId());
saveFlow.setPayTime(DateUtils.dateToLocalDateTime(save.getPayTime()));
saveFlow.setSysSerialNumber(OrderNos.getDid(30));
saveFlow.setBankSerialNumber(save.getPayNo());
@@ -388,6 +419,7 @@
}
}
+
/**
* 根据发票编号查询账单列表
@@ -529,6 +561,7 @@
TFlowManagement save = new TFlowManagement();
save.setPayType(3);
save.setPayer(dto.getPayer());
+ save.setBusinessDeptId(bill.getBusinessDeptId());
save.setPayTime(bankflow!=null?bankflow.getPayTime():DateUtils.dateToLocalDateTime(new Date()));
save.setSysSerialNumber(OrderNos.getDid());
save.setBankSerialNumber(bankflow!=null?bankflow.getBankSerialNumber():null);
@@ -543,12 +576,12 @@
}
@Override
- public BillStatisticsDto statistics() {
+ public BillStatisticsDto statistics(TBillQuery query) {
BillStatisticsDto dto = new BillStatisticsDto();
- dto.setRent(getBaseMapper().statisticsAllRent());
- dto.setNopay(getBaseMapper().statisticsNoPay());
- dto.setPayed(getBaseMapper().statisticsPayed());
- dto.setOverdue(getBaseMapper().statisticsOverdue());
+ dto.setRent(getBaseMapper().statisticsAllRent(query));
+ dto.setNopay(getBaseMapper().statisticsNoPay(query));
+ dto.setPayed(getBaseMapper().statisticsPayed(query));
+ dto.setOverdue(getBaseMapper().statisticsOverdue(query));
return dto;
}
@@ -557,5 +590,84 @@
return this.baseMapper.batchBillCount(userId,billIds);
}
+ /**
+ * 街道租金排行
+ * @return
+ */
+ @Override
+ public List<ScreenRentRankVO> getStreetRentRank(String businessDeptId) {
+ return baseMapper.getStreetRentRank(businessDeptId);
+ }
+ /**
+ * 查询季付账单
+ * @param businessDeptId
+ * @return
+ */
+ @Override
+ public List<TBill> getJiFuBillList(String businessDeptId) {
+ return baseMapper.getJiFuBillList(businessDeptId,null,null);
+ }
+
+ /**
+ * 查询当前季度的季付账单
+ * @param businessDeptId
+ * @param first
+ * @param last
+ * @return
+ */
+ @Override
+ 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