提交 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 {
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;
@NoArgsConstructor
public class OwnerLoanAccountRunWaterRecordDTO {
@ColumnWidth(30)
@ColumnWidth(25)
@ExcelProperty("货主编码")
private String ownerUserNo;
@ColumnWidth(30)
@ColumnWidth(25)
@ExcelProperty("货主名称")
private String ownerUserName;
@ColumnWidth(30)
@ColumnWidth(25)
@ExcelProperty("联系电话")
private String mobile;
@ColumnWidth(30)
@ColumnWidth(25)
@ExcelProperty("流水号")
private String runningWaterNo;
@ColumnWidth(50)
@ColumnWidth(25)
@ExcelProperty("运单编号")
private String childNo;
@ExcelIgnore
private Integer runningWaterType;
@ColumnWidth(25)
@ExcelProperty("流水类型")
private String runningWaterTypeMsg;
public String getRunningWaterTypeMsg(){
return OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.getMsgByCode(runningWaterType);
}
@ColumnWidth(20)
@ColumnWidth(25)
@ExcelProperty("金额")
private BigDecimal alterationBalance;
public BigDecimal getAlterationBalance(){
return Objects.isNull(alterationBalance)? null : alterationBalance.movePointLeft(2);
}
@ColumnWidth(60)
@ColumnWidth(25)
@ExcelProperty("冻结余额")
private BigDecimal frozenBalance;
......@@ -73,9 +74,7 @@ public class OwnerLoanAccountRunWaterRecordDTO {
return Objects.isNull(frozenBalance)? null : frozenBalance.movePointLeft(2);
}
@ColumnWidth(70)
@ColumnWidth(25)
@ExcelProperty("可用余额")
private BigDecimal useAbleBalance;
......@@ -83,7 +82,7 @@ public class OwnerLoanAccountRunWaterRecordDTO {
return Objects.isNull(useAbleBalance)? null : useAbleBalance.movePointLeft(2);
}
@ColumnWidth(80)
@ColumnWidth(25)
@ExcelProperty("账户余额")
private BigDecimal accountBalance;
......@@ -92,15 +91,15 @@ public class OwnerLoanAccountRunWaterRecordDTO {
}
@ColumnWidth(10)
@ColumnWidth(25)
@ExcelProperty("操作人")
private String createBy;
@ColumnWidth(10)
@ColumnWidth(25)
@ExcelProperty("操作时间")
private String createTime;
@ColumnWidth(25)
@ExcelProperty("借款单号")
private String loanNo;
......
......@@ -5,6 +5,7 @@ import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.json.JSONUtil;
import com.clx.performance.component.OrderChildLoanComponent;
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.OwnerLoanAccountRunningWaterRecordDao;
import com.clx.performance.dao.loan.OwnerLoanRecordDao;
......@@ -12,7 +13,9 @@ import com.clx.performance.dao.loan.OwnerRepaymentDao;
import com.clx.performance.dao.settle.SettlementDriverDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.LoanBalanceDTO;
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.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum;
......@@ -25,8 +28,11 @@ import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.settle.SettlementMqService;
import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException;
import lombok.AllArgsConstructor;
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.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
......@@ -41,6 +47,7 @@ import java.math.BigDecimal;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Component
......@@ -68,7 +75,7 @@ public class EventListenerComponent {
private final RabbitTemplate rabbitTemplate;
private final OwnerLoanRecordDao ownerLoanRecordDao;
private final RedissonClient redissonClient;
@Async
......@@ -109,6 +116,15 @@ public class EventListenerComponent {
public void listen(OwnerLoanEvent event) {
log.info("OwnerLoanEvent事件执行");
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();
SettlementDriverDetail settlementDriverDetail = param.getSettlementDriverDetail();
OrderChild orderChild = param.getOrderChild();
......@@ -129,6 +145,14 @@ public class EventListenerComponent {
// 发送mq 通过开票标识
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论