提交 33996a40 authored 作者: huyufan's avatar huyufan

Merge remote-tracking branch 'origin/v6.5_transport_open_20231115' into release

......@@ -47,6 +47,21 @@ public enum SettlementDriverEnum {
}
}
@Getter
@AllArgsConstructor
public enum PrepayFreightFlag {
PAYED(1, "已预付"),
NO_PAY(0, "未预付");
private final Integer code;
private final String msg;
public static Optional<PrepayFreightFlag> getByCode(int code) {
return Arrays.stream(values()).filter(e -> Objects.equals(e.getCode(), code)).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(PrepayFreightFlag::getMsg).orElse(null);
}
}
}
......@@ -5,6 +5,8 @@ import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.time.LocalDateTime;
@Getter
@Setter
......@@ -18,4 +20,6 @@ public class NetworkDriverAccountParam {
private String mobile;
private LocalDateTime creteTime;
}
......@@ -13,6 +13,7 @@ import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.List;
@Slf4j
......@@ -43,7 +44,13 @@ public class NetworkDriverAccountSyncJob {
param.setDriverUserName(vo.getName());
param.setDriverUserNo(vo.getUserNo());
param.setMobile(vo.getMobile());
try {
Thread.sleep(2000L);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
networkDriverAccountService.createNetworkDriverAccount(param);
}
}
......
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.settle.NetworkDriverAccount;
import com.clx.performance.param.pc.PageNetworkAccountListParam;
import com.clx.performance.sqlProvider.settle.NetworkDriverAccountProvider;
import com.clx.performance.vo.pc.IntegralRecordVO;
import com.clx.performance.vo.pc.NetworkDriverAccountVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
......@@ -19,7 +20,7 @@ import org.apache.ibatis.annotations.Update;
public interface NetworkDriverAccountMapper extends BaseMapper<NetworkDriverAccount> {
@SelectProvider(type = NetworkDriverAccountProvider.class, method = "networkAccountList")
IPage<NetworkDriverAccountVO> networkAccountList(Page<NetworkDriverAccountVO> page, PageNetworkAccountListParam param);
IPage<NetworkDriverAccountVO> networkAccountList(@Param("page")Page<NetworkDriverAccountVO> page, @Param("param")PageNetworkAccountListParam param);
@Update("update network_driver_account set usable_balance = usable_balance + #{account.usableBalance}"
+ ",account_balance = account_balance + #{account.accountBalance}"
......
......@@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
......
......@@ -73,9 +73,9 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
NetworkDriverAccount networkDriverAccount = networkDriverAccountDao.getOneByField(NetworkDriverAccount::getDriverUserNo, settlementDriverDetail.getDriverUserNo()).get();
log.info("查询出NetworkDriverAccount{}", JSONUtil.parse(networkDriverAccount));
NetworkDriverAccount build = NetworkDriverAccount.builder().id(networkDriverAccount.getId())
.usableBalance(settlementDriverDetail.getFreight())
.usableBalance(settlementDriverDetail.getSettlementFreight())
.frozenBalance(BigDecimal.ZERO)
.accountBalance(settlementDriverDetail.getFreight()).build();
.accountBalance(settlementDriverDetail.getSettlementFreight()).build();
while (true) {
NetworkDriverAccount account = networkDriverAccountDao.getEntityByKey(build.getId()).get();
build.setModifiedTime(account.getModifiedTime());
......@@ -86,7 +86,8 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
NetworkDriverRunningWaterRecord entity = NetworkDriverRunningWaterRecord.builder()
.mobile(networkDriverAccount.getMobile())
.usableBalance(account.getUsableBalance())
.alterationBalance(settlementDriverDetail.getFreight()).accountBalance(account.getAccountBalance())
.alterationBalance(settlementDriverDetail.getSettlementFreight())
.accountBalance(account.getAccountBalance())
.frozenBalance(account.getFrozenBalance()).createBy("系统")
.fundType(NetworkDriverAccountEnum.FundType.INCOME.getCode())
.fundTypeMsg(NetworkDriverAccountEnum.FundType.INCOME.getMsg())
......@@ -118,9 +119,9 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
NetworkDriverAccount networkDriverAccount = networkDriverAccountDao.getOneByField(NetworkDriverAccount::getDriverUserNo, settlementDriverDetail.getDriverUserNo()).get();
log.info("查询出NetworkDriverAccount{}", JSONUtil.parse(networkDriverAccount));
NetworkDriverAccount build = NetworkDriverAccount.builder().id(networkDriverAccount.getId())
.frozenBalance(settlementDriverDetail.getFreight())
.frozenBalance(settlementDriverDetail.getSettlementFreight())
.accountBalance(BigDecimal.ZERO)
.usableBalance(settlementDriverDetail.getFreight()).build();
.usableBalance(settlementDriverDetail.getSettlementFreight()).build();
while (true) {
NetworkDriverAccount account = networkDriverAccountDao.getEntityByKey(build.getId()).get();
build.setModifiedTime(account.getModifiedTime());
......@@ -131,7 +132,8 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
NetworkDriverRunningWaterRecord entity = NetworkDriverRunningWaterRecord.builder()
.usableBalance(account.getUsableBalance())
.mobile(networkDriverAccount.getMobile())
.alterationBalance(settlementDriverDetail.getFreight()).accountBalance(account.getAccountBalance())
.alterationBalance(settlementDriverDetail.getSettlementFreight())
.accountBalance(account.getAccountBalance())
.frozenBalance(account.getFrozenBalance()).createBy("系统")
.fundType(NetworkDriverAccountEnum.FundType.FROZEN.getCode())
.fundTypeMsg(NetworkDriverAccountEnum.FundType.FROZEN.getMsg())
......@@ -159,9 +161,9 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
NetworkDriverAccount networkDriverAccount = networkDriverAccountDao.getOneByField(NetworkDriverAccount::getDriverUserNo, settlementDriverDetail.getDriverUserNo()).get();
log.info("查询出NetworkDriverAccount{}", JSONUtil.parse(networkDriverAccount));
NetworkDriverAccount build = NetworkDriverAccount.builder().id(networkDriverAccount.getId())
.frozenBalance(settlementDriverDetail.getFreight().negate())
.frozenBalance(settlementDriverDetail.getSettlementFreight().negate())
.usableBalance(BigDecimal.ZERO)
.accountBalance(settlementDriverDetail.getFreight()).build();
.accountBalance(settlementDriverDetail.getSettlementFreight()).build();
while (true) {
NetworkDriverAccount account = networkDriverAccountDao.getEntityByKey(build.getId()).get();
build.setModifiedTime(account.getModifiedTime());
......@@ -174,7 +176,8 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
NetworkDriverRunningWaterRecord entity = NetworkDriverRunningWaterRecord.builder()
.usableBalance(account.getUsableBalance())
.mobile(networkDriverAccount.getMobile())
.alterationBalance(settlementDriverDetail.getFreight()).accountBalance(account.getAccountBalance())
.alterationBalance(settlementDriverDetail.getSettlementFreight())
.accountBalance(account.getAccountBalance())
.frozenBalance(account.getFrozenBalance()).createBy("系统")
.fundType(NetworkDriverAccountEnum.FundType.EXPENDITURE.getCode())
.fundTypeMsg(NetworkDriverAccountEnum.FundType.EXPENDITURE.getMsg())
......@@ -197,7 +200,7 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
@Override
public void generateNetworkDriverRunningWaterRecord(SettlementDriverDetail settlementDriverDetail, Integer runningWaterType) {
if (NetworkDriverAccountEnum.RunningWaterStatus.SETTLEMENT.getCode().equals(runningWaterType)) {
log.info("执行生成网络货运钱包相关,参数userNo:{},money{},runningWaterType:{}", settlementDriverDetail.getDriverUserNo(), settlementDriverDetail.getPrepayFreight(), runningWaterType);
log.info("执行生成网络货运钱包相关,参数userNo:{},money{},runningWaterType:{}", settlementDriverDetail.getDriverUserNo(), settlementDriverDetail.getSettlementFreight(), runningWaterType);
strategyMap.get(NetworkDriverAccountEnum.RunningWaterStatus.SETTLEMENT.getCode()).accept(settlementDriverDetail);
strategyMap.get(NetworkDriverAccountEnum.RunningWaterStatus.CASE_OUT_FROZEN.getCode()).accept(settlementDriverDetail);
}
......@@ -227,8 +230,8 @@ public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriver
.driverUserName(settlementDriverDetail.getDriverName()).mobile(bankCardVO.getMobile())
.status(NetworkDriverAccountEnum.CaseOutRecordStatus.WAIT_PLATFORM_PAY.getCode())
.statusMsg(NetworkDriverAccountEnum.CaseOutRecordStatus.WAIT_PLATFORM_PAY.getMsg())
.bank(bankCardVO.getBank()).collectionBankCode(bankCardVO.getBankCode())
.payee(bankCardVO.getName()).alterationBalance(settlementDriverDetail.getFreight())
.bank(bankCardVO.getBank()).collectionBankCode(bankCardVO.getCardNo())
.payee(bankCardVO.getName()).alterationBalance(settlementDriverDetail.getSettlementFreight())
.orderNo(settlementDriverDetail.getOrderNo()).orderGoodsNo(settlementDriverDetail.getOrderGoodsNo())
.childNo(settlementDriverDetail.getChildNo())
.platform("网运平台").createBy("系统").build();
......
......@@ -149,7 +149,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
if (!settlementDriverDetail.getInvoiceType().equals(SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) {
paySettlementDriver(settlementDriverDetail);
} else {
if (settlementDriverDetail.getPrepayFreight().compareTo(BigDecimal.ZERO) > 0) {
if (settlementDriverDetail.getPrepayFreightFlag().equals(SettlementDriverEnum.PrepayFreightFlag.PAYED.getCode())
&& settlementDriverDetail.getPrepayFreight().compareTo(BigDecimal.ZERO) > 0) {
settlementDriverDetail.setSettlementNo(settlementNo);
//插入同步网络货运待支付记录
childSyncTransportRecordService.addOrderChildSyncTransportRecord(settlementDriverDetail);
......
......@@ -15,6 +15,7 @@ import com.clx.performance.enums.IdTypeEnum;
import com.clx.performance.enums.NetworkDriverAccountEnum;
import com.clx.performance.enums.OwnerAccountEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementDriverEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementWayEnum;
......@@ -90,9 +91,9 @@ public class SettlementServiceImpl implements SettlementService {
}
// 开票金额
settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(), settlementOwnerDetail));
if (settlementDriverDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) < 0) {
if (settlementDriverDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) <= 0) {
invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode();
settlementDriverDetail.setPrepayFreightFlag(0);
settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.NO_PAY.getCode());
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
} else {
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).get();
......@@ -127,7 +128,7 @@ public class SettlementServiceImpl implements SettlementService {
//冻结的预付运费为0 或者 此刻预付运费也可能为0,那么就不用生成扣除相关流水逻辑
if (subtract.compareTo(BigDecimal.ZERO) <= 0 || ans.compareTo(BigDecimal.ZERO) == 0) {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
settlementDriverDetail.setPrepayFreightFlag(0);
settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.NO_PAY.getCode());
} else {
if (subtract.subtract(ans).compareTo(BigDecimal.ZERO) >= 0) {
//账户扣钱并生成扣除流水
......@@ -146,13 +147,13 @@ public class SettlementServiceImpl implements SettlementService {
} else {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
settlementDriverDetail.setPrepayFreightFlag(0);
settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.NO_PAY.getCode());
}
}
} else {
settlementDriverDetail.setPrepayFreightFlag(0);
settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.NO_PAY.getCode());
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO.getCode());
}
......@@ -204,7 +205,7 @@ public class SettlementServiceImpl implements SettlementService {
OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode());
settlementOwnerDetail.setPrepayFreight(ans);
settlementDriverDetail.setPrepayFreightFlag(1);
settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.PAYED.getCode());
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO_REQUIRE.getCode());
......
package com.clx.performance.sqlProvider.settle;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.pc.PageNetworkAccountListParam;
import com.clx.performance.vo.pc.NetworkDriverAccountVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
public class NetworkDriverAccountProvider {
public String networkAccountList(@Param("param") PageNetworkAccountListParam param) {
public String networkAccountList(@Param("page") Page<NetworkDriverAccountVO> page, @Param("param") PageNetworkAccountListParam param) {
String sql = new SQL() {{
SELECT("a.id, a.driver_user_no," +
" a.driver_user_name, a.mobile, a.account_balance, " +
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论