提交 f7d43d56 authored 作者: liuhaiquan's avatar liuhaiquan

Merge remote-tracking branch 'origin/v10.7_borrowing_and_repayment_20240118' into test

...@@ -14,5 +14,6 @@ public class RedissonConstants { ...@@ -14,5 +14,6 @@ public class RedissonConstants {
public static final String ORDER_CHILD_LOAN_RECORD_LOAN_NO_LOCK = "clx-performance:loanRecordApprove:loanNo:"; public static final String ORDER_CHILD_LOAN_RECORD_LOAN_NO_LOCK = "clx-performance:loanRecordApprove:loanNo:";
public static final String OWNER_LOAN_EVENT_USERID_LOCK = "clx-performance:ownerLoanEvent:ownerUserId:";
} }
...@@ -28,44 +28,45 @@ import java.util.Objects; ...@@ -28,44 +28,45 @@ import java.util.Objects;
@NoArgsConstructor @NoArgsConstructor
public class OwnerLoanAccountRunWaterRecordDTO { public class OwnerLoanAccountRunWaterRecordDTO {
@ColumnWidth(30) @ColumnWidth(25)
@ExcelProperty("货主编码") @ExcelProperty("货主编码")
private String ownerUserNo; private String ownerUserNo;
@ColumnWidth(30) @ColumnWidth(25)
@ExcelProperty("货主名称") @ExcelProperty("货主名称")
private String ownerUserName; private String ownerUserName;
@ColumnWidth(30) @ColumnWidth(25)
@ExcelProperty("联系电话") @ExcelProperty("联系电话")
private String mobile; private String mobile;
@ColumnWidth(30) @ColumnWidth(25)
@ExcelProperty("流水号") @ExcelProperty("流水号")
private String runningWaterNo; private String runningWaterNo;
@ColumnWidth(50) @ColumnWidth(25)
@ExcelProperty("运单编号") @ExcelProperty("运单编号")
private String childNo; private String childNo;
@ExcelIgnore @ExcelIgnore
private Integer runningWaterType; private Integer runningWaterType;
@ColumnWidth(25)
@ExcelProperty("流水类型") @ExcelProperty("流水类型")
private String runningWaterTypeMsg; private String runningWaterTypeMsg;
public String getRunningWaterTypeMsg(){ public String getRunningWaterTypeMsg(){
return OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.getMsgByCode(runningWaterType); return OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.getMsgByCode(runningWaterType);
} }
@ColumnWidth(20) @ColumnWidth(25)
@ExcelProperty("金额") @ExcelProperty("金额")
private BigDecimal alterationBalance; private BigDecimal alterationBalance;
public BigDecimal getAlterationBalance(){ public BigDecimal getAlterationBalance(){
return Objects.isNull(alterationBalance)? null : alterationBalance.movePointLeft(2); return Objects.isNull(alterationBalance)? null : alterationBalance.movePointLeft(2);
} }
@ColumnWidth(60) @ColumnWidth(25)
@ExcelProperty("冻结余额") @ExcelProperty("冻结余额")
private BigDecimal frozenBalance; private BigDecimal frozenBalance;
...@@ -73,9 +74,7 @@ public class OwnerLoanAccountRunWaterRecordDTO { ...@@ -73,9 +74,7 @@ public class OwnerLoanAccountRunWaterRecordDTO {
return Objects.isNull(frozenBalance)? null : frozenBalance.movePointLeft(2); return Objects.isNull(frozenBalance)? null : frozenBalance.movePointLeft(2);
} }
@ColumnWidth(25)
@ColumnWidth(70)
@ExcelProperty("可用余额") @ExcelProperty("可用余额")
private BigDecimal useAbleBalance; private BigDecimal useAbleBalance;
...@@ -83,7 +82,7 @@ public class OwnerLoanAccountRunWaterRecordDTO { ...@@ -83,7 +82,7 @@ public class OwnerLoanAccountRunWaterRecordDTO {
return Objects.isNull(useAbleBalance)? null : useAbleBalance.movePointLeft(2); return Objects.isNull(useAbleBalance)? null : useAbleBalance.movePointLeft(2);
} }
@ColumnWidth(80) @ColumnWidth(25)
@ExcelProperty("账户余额") @ExcelProperty("账户余额")
private BigDecimal accountBalance; private BigDecimal accountBalance;
...@@ -92,15 +91,15 @@ public class OwnerLoanAccountRunWaterRecordDTO { ...@@ -92,15 +91,15 @@ public class OwnerLoanAccountRunWaterRecordDTO {
} }
@ColumnWidth(10) @ColumnWidth(25)
@ExcelProperty("操作人") @ExcelProperty("操作人")
private String createBy; private String createBy;
@ColumnWidth(10) @ColumnWidth(25)
@ExcelProperty("操作时间") @ExcelProperty("操作时间")
private String createTime; private String createTime;
@ColumnWidth(25)
@ExcelProperty("借款单号") @ExcelProperty("借款单号")
private String loanNo; private String loanNo;
......
...@@ -5,6 +5,7 @@ import cn.hutool.core.exceptions.ExceptionUtil; ...@@ -5,6 +5,7 @@ import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.clx.performance.component.OrderChildLoanComponent; import com.clx.performance.component.OrderChildLoanComponent;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.constant.RedissonConstants;
import com.clx.performance.dao.loan.OrderChildLoanRetryRecordDao; import com.clx.performance.dao.loan.OrderChildLoanRetryRecordDao;
import com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao; import com.clx.performance.dao.loan.OwnerLoanAccountRunningWaterRecordDao;
import com.clx.performance.dao.loan.OwnerLoanRecordDao; import com.clx.performance.dao.loan.OwnerLoanRecordDao;
...@@ -12,7 +13,9 @@ import com.clx.performance.dao.loan.OwnerRepaymentDao; ...@@ -12,7 +13,9 @@ import com.clx.performance.dao.loan.OwnerRepaymentDao;
import com.clx.performance.dao.settle.SettlementDriverDao; import com.clx.performance.dao.settle.SettlementDriverDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao; import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.LoanBalanceDTO;
import com.clx.performance.dto.OwnerLoanMqDTO; import com.clx.performance.dto.OwnerLoanMqDTO;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.loan.OwnerLoanAccountRunningWaterRecordEnum; import com.clx.performance.enums.loan.OwnerLoanAccountRunningWaterRecordEnum;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum; import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum; import com.clx.performance.enums.loan.OwnerRePaymentEnum;
...@@ -25,8 +28,11 @@ import com.clx.performance.model.settle.SettlementDriverDetail; ...@@ -25,8 +28,11 @@ import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.settle.SettlementMqService; import com.clx.performance.service.settle.SettlementMqService;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
...@@ -41,6 +47,7 @@ import java.math.BigDecimal; ...@@ -41,6 +47,7 @@ import java.math.BigDecimal;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component @Component
...@@ -68,7 +75,7 @@ public class EventListenerComponent { ...@@ -68,7 +75,7 @@ public class EventListenerComponent {
private final RabbitTemplate rabbitTemplate; private final RabbitTemplate rabbitTemplate;
private final OwnerLoanRecordDao ownerLoanRecordDao; private final RedissonClient redissonClient;
@Async @Async
...@@ -109,6 +116,15 @@ public class EventListenerComponent { ...@@ -109,6 +116,15 @@ public class EventListenerComponent {
public void listen(OwnerLoanEvent event) { public void listen(OwnerLoanEvent event) {
log.info("OwnerLoanEvent事件执行"); log.info("OwnerLoanEvent事件执行");
OwnerLoanMqDTO param = event.getParam(); OwnerLoanMqDTO param = event.getParam();
RLock lock = null;
try {
lock = redissonClient.getLock(RedissonConstants.OWNER_LOAN_EVENT_USERID_LOCK + param.getSettlementOwnerDetail().getOwnerUserNo());
boolean flag = lock.tryLock(3, 10, TimeUnit.SECONDS);
if (!flag) {
throw new ServiceSystemException(PerformanceResultEnum.GET_LOAN_RECORD);
}
SettlementOwnerDetail settlementOwnerDetail = param.getSettlementOwnerDetail(); SettlementOwnerDetail settlementOwnerDetail = param.getSettlementOwnerDetail();
SettlementDriverDetail settlementDriverDetail = param.getSettlementDriverDetail(); SettlementDriverDetail settlementDriverDetail = param.getSettlementDriverDetail();
OrderChild orderChild = param.getOrderChild(); OrderChild orderChild = param.getOrderChild();
...@@ -129,6 +145,14 @@ public class EventListenerComponent { ...@@ -129,6 +145,14 @@ public class EventListenerComponent {
// 发送mq 通过开票标识 // 发送mq 通过开票标识
settlementMqService.invoiceTypeSync(settlementDriverDetail.getChildNo(), settlementDriverDetail.getInvoiceType()); settlementMqService.invoiceTypeSync(settlementDriverDetail.getChildNo(), settlementDriverDetail.getInvoiceType());
} catch (Exception e) {
throw new ServiceSystemException(PerformanceResultEnum.GET_LOAN_RECORD, e.getMessage());
} finally {
if (lock != null && lock.isLocked() && lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论