提交 0f389e05 authored 作者: huyufan's avatar huyufan

运单支付

上级 44c347de
...@@ -58,6 +58,8 @@ public class CarrierPageSettlementDriverVO { ...@@ -58,6 +58,8 @@ public class CarrierPageSettlementDriverVO {
@MoneyOutConvert @MoneyOutConvert
@ApiModelProperty(value = "预付运费金额") @ApiModelProperty(value = "预付运费金额")
private BigDecimal prepayFreight; private BigDecimal prepayFreight;
@ApiModelProperty(value = "预付运费标示 0:未预付 1:已预付")
private Integer prepayFreightFlag;
@MoneyOutConvert @MoneyOutConvert
@ApiModelProperty(value = "结算金额") @ApiModelProperty(value = "结算金额")
private BigDecimal settlementFreight; private BigDecimal settlementFreight;
......
...@@ -7,6 +7,8 @@ import com.clx.performance.model.settle.OrderChildSyncTransportRecord; ...@@ -7,6 +7,8 @@ import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* @author kavin * @author kavin
* Date 2023-12-08 * Date 2023-12-08
...@@ -14,4 +16,9 @@ import org.springframework.stereotype.Repository; ...@@ -14,4 +16,9 @@ import org.springframework.stereotype.Repository;
*/ */
@Repository @Repository
public class OrderChildSyncTransportRecordDaoImpl extends BaseDaoImpl<OrderChildSyncTransportRecordMapper, OrderChildSyncTransportRecord, Integer> implements OrderChildSyncTransportRecordDao { public class OrderChildSyncTransportRecordDaoImpl extends BaseDaoImpl<OrderChildSyncTransportRecordMapper, OrderChildSyncTransportRecord, Integer> implements OrderChildSyncTransportRecordDao {
@Override
public List<OrderChildSyncTransportRecord> selectListForJob() {
return baseMapper.selectList(lQrWrapper().eq(OrderChildSyncTransportRecord::getStatus, 0));
}
} }
...@@ -5,10 +5,15 @@ import com.clx.performance.mapper.settle.OrderChildSyncTransportRecordMapper; ...@@ -5,10 +5,15 @@ import com.clx.performance.mapper.settle.OrderChildSyncTransportRecordMapper;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord; import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
import java.util.List;
/** /**
* @author kavin * @author kavin
* Date 2023-12-08 * Date 2023-12-08
* Time 11:42 * Time 11:42
*/ */
public interface OrderChildSyncTransportRecordDao extends BaseDao<OrderChildSyncTransportRecordMapper, OrderChildSyncTransportRecord, Integer> { public interface OrderChildSyncTransportRecordDao extends BaseDao<OrderChildSyncTransportRecordMapper, OrderChildSyncTransportRecord, Integer> {
List<OrderChildSyncTransportRecord> selectListForJob();
} }
package com.clx.performance.job;
import cn.hutool.core.collection.CollectionUtil;
import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao;
import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.msl.common.dto.HttpDTO;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Component
@AllArgsConstructor
public class OrderChildSyncTransportJob {
private final OrderChildSyncTransportRecordDao orderChildSyncTransportRecordDao;
private final TransportFeignService transportFeignService;
/**
* 同步网络货运
*/
@XxlJob("orderChildSyncTransportJob")
public void orderChildSyncTransportJob() {
List<OrderChildSyncTransportRecord> recordList = orderChildSyncTransportRecordDao.selectListForJob();
if (CollectionUtil.isEmpty(recordList)) {
return;
}
List<String> orderChilList = recordList.stream().map(OrderChildSyncTransportRecord::getChildNo).collect(Collectors.toList());
HttpDTO httpDTO = transportFeignService.orderChildPaySync(orderChilList);
for (OrderChildSyncTransportRecord record : recordList) {
OrderChildSyncTransportRecord update = new OrderChildSyncTransportRecord();
update.setId(record.getId());
update.setStatus(1);
orderChildSyncTransportRecordDao.updateEntityByKey(update);
}
}
}
...@@ -105,7 +105,7 @@ public class OrderChildSyncTransportRecord implements HasKey<Integer> { ...@@ -105,7 +105,7 @@ public class OrderChildSyncTransportRecord implements HasKey<Integer> {
private Integer invoiceType; private Integer invoiceType;
@TableField("status") @TableField("status")
@ApiModelProperty("状态") @ApiModelProperty("状态 0: 未同步, 1:已同步 2:回调成功 3:回调失败")
private Integer status; private Integer status;
@TableField("create_time") @TableField("create_time")
......
...@@ -45,6 +45,7 @@ public class SettlementDriver implements HasKey<Integer> { ...@@ -45,6 +45,7 @@ public class SettlementDriver implements HasKey<Integer> {
private BigDecimal settlementFreight; //结算金额(分) private BigDecimal settlementFreight; //结算金额(分)
private Integer invoiceType; //开票标识:1网运单 2普通单 private Integer invoiceType; //开票标识:1网运单 2普通单
private String settlementPlatform; //结算平台 private String settlementPlatform; //结算平台
private Integer prepayFreightFlag; //预付运费标示 0:未预付 1:已预付
private String payErrorMsg; //支付失败原因 private String payErrorMsg; //支付失败原因
private Integer status; //状态 private Integer status; //状态
private LocalDateTime createTime; //创建时间 private LocalDateTime createTime; //创建时间
......
...@@ -26,10 +26,8 @@ import com.clx.performance.utils.excel.ExcelUtil; ...@@ -26,10 +26,8 @@ import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO; import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO;
import com.clx.performance.vo.pc.OwnerAccountVO; import com.clx.performance.vo.pc.OwnerAccountVO;
import com.clx.user.enums.driver.DriverTruckEnum;
import com.clx.user.feign.OwnerInfoFeign; import com.clx.user.feign.OwnerInfoFeign;
import com.clx.user.param.pc.owner.UpdateOwnerBindCardFeignParam; import com.clx.user.param.pc.owner.UpdateOwnerBindCardFeignParam;
import com.clx.user.vo.pc.driver.truck.DriverTruckVo;
import com.clx.user.vo.pc.owner.OwnerBindCardVO; import com.clx.user.vo.pc.owner.OwnerBindCardVO;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
...@@ -810,69 +808,189 @@ public class OwnerAccountServiceImpl implements OwnerAccountService { ...@@ -810,69 +808,189 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
log.info("解冻预付运费、保证金账户出错,查询出冻结流水有问题,参数为{}", JSONUtil.parse(param)); log.info("解冻预付运费、保证金账户出错,查询出冻结流水有问题,参数为{}", JSONUtil.parse(param));
return; return;
} }
generateOrdinary(list);
}
else {
generateNetwork(param);
}
}
while (true) { //处理网运单
int flag = 0; private void generateNetwork(ThawAccountParam param) {
for (OwnerRunningWaterRecord runningWaterRecord : list) { List<OwnerRunningWaterRecord> runningWaterRecordList = ownerRunningWaterRecordDao.getOwnerRunningWaterRecord(param.getOrderNo());
OwnerAccount account = ownerAccountDao.getAccountByOwnerUserNoAndAccountType(runningWaterRecord.getOwnerUserNo(), runningWaterRecord.getAccountType()); //保证金冻结金额
BigDecimal frozenMargin = BigDecimal.ZERO;
//预付运费冻结金额
BigDecimal frozenFreight = BigDecimal.ZERO;
//预付运费扣除金额
BigDecimal takeOutFreight = BigDecimal.ZERO;
List<OwnerRunningWaterRecord> list = new LinkedList<>();
for (OwnerRunningWaterRecord runningWaterRecord : runningWaterRecordList) {
if (runningWaterRecord.getAccountType().equals(OwnerAccountEnum.AccountTypeStatus.MARGIN_ACCOUNT.getCode())
&& runningWaterRecord.getRunningWaterType().equals(OwnerAccountEnum.RunningWaterStatus.FROZEN.getCode())
) {
frozenMargin = runningWaterRecord.getAlterationBalance();
list.add(runningWaterRecord);
}
if (runningWaterRecord.getAccountType().equals(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode())
&& runningWaterRecord.getRunningWaterType().equals(OwnerAccountEnum.RunningWaterStatus.FROZEN.getCode())
) {
frozenFreight = runningWaterRecord.getAlterationBalance();
list.add(runningWaterRecord);
}
if (runningWaterRecord.getAccountType().equals(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode())
&& runningWaterRecord.getRunningWaterType().equals(OwnerAccountEnum.RunningWaterStatus.TAKE_OUT.getCode())
) {
takeOutFreight = takeOutFreight.add(runningWaterRecord.getAlterationBalance());
}
}
BigDecimal subtract = frozenFreight.subtract(takeOutFreight);
log.info("执行网运单账户释放: 保证金冻结金额:{}, 预付运费冻结金额{}, 预付运费扣除金额, {}", frozenMargin, frozenFreight, takeOutFreight);
while (true) {
int flag = 0;
for (OwnerRunningWaterRecord runningWaterRecord : list) {
OwnerAccount account = ownerAccountDao.getAccountByOwnerUserNoAndAccountType(runningWaterRecord.getOwnerUserNo(), runningWaterRecord.getAccountType());
if (account.getAccountType().equals(OwnerAccountEnum.AccountTypeStatus.MARGIN_ACCOUNT.getCode())) {
OwnerAccount entity = new OwnerAccount();
entity.setId(account.getId());
entity.setModifiedTime(account.getModifiedTime());
entity.setAccountBalance(BigDecimal.ZERO);
entity.setUsableBalance(frozenMargin);
entity.setFrozenBalance(frozenMargin);
flag += ownerAccountDao.thawAccount(entity, LocalDateTime.now());
} else {
OwnerAccount entity = new OwnerAccount(); OwnerAccount entity = new OwnerAccount();
entity.setId(account.getId()); entity.setId(account.getId());
entity.setModifiedTime(account.getModifiedTime()); entity.setModifiedTime(account.getModifiedTime());
entity.setAccountBalance(BigDecimal.ZERO); entity.setAccountBalance(BigDecimal.ZERO);
entity.setUsableBalance(runningWaterRecord.getAlterationBalance()); entity.setUsableBalance(subtract);
entity.setFrozenBalance(runningWaterRecord.getAlterationBalance()); entity.setFrozenBalance(frozenFreight);
flag += ownerAccountDao.thawAccount(entity, LocalDateTime.now()); flag += ownerAccountDao.thawAccount(entity, LocalDateTime.now());
} }
if (flag == list.size()) { }
log.info("解冻预付运费、保证金账户,账户扣款已处理,开始执行插入相关流水");
for (OwnerRunningWaterRecord runningWaterRecord : list) { if (flag == list.size()) {
OwnerAccount account = ownerAccountDao.getAccountByOwnerUserNoAndAccountType(runningWaterRecord.getOwnerUserNo(), runningWaterRecord.getAccountType()); for (OwnerRunningWaterRecord runningWaterRecord : list) {
if (runningWaterRecord.getAccountType().equals(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode())) { OwnerAccount account = ownerAccountDao.getAccountByOwnerUserNoAndAccountType(runningWaterRecord.getOwnerUserNo(), runningWaterRecord.getAccountType());
log.info("插入预付运费解冻流水"); if (runningWaterRecord.getAccountType().equals(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode())) {
OwnerRunningWaterRecord prepaidFreight = new OwnerRunningWaterRecord(); log.info("插入网运单预付运费解冻流水");
prepaidFreight.setOwnerUserName(runningWaterRecord.getOwnerUserName()); OwnerRunningWaterRecord prepaidFreight = new OwnerRunningWaterRecord();
prepaidFreight.setMobile(runningWaterRecord.getMobile()); prepaidFreight.setOwnerUserName(runningWaterRecord.getOwnerUserName());
prepaidFreight.setCreateBy("系统"); prepaidFreight.setMobile(runningWaterRecord.getMobile());
prepaidFreight.setOrderId(runningWaterRecord.getOrderId()); prepaidFreight.setCreateBy("系统");
prepaidFreight.setOrderNo(runningWaterRecord.getOrderNo()); prepaidFreight.setOrderId(runningWaterRecord.getOrderId());
prepaidFreight.setOrderNo(runningWaterRecord.getOrderNo());
prepaidFreight.setRelationId(null);
prepaidFreight.setAlterationBalance(runningWaterRecord.getAlterationBalance()); prepaidFreight.setRelationId(null);
prepaidFreight.setFrozenBalance(account.getFrozenBalance()); prepaidFreight.setAlterationBalance(subtract);
prepaidFreight.setUsableBalance(account.getUsableBalance()); prepaidFreight.setFrozenBalance(account.getFrozenBalance());
prepaidFreight.setTakeOutBalance(BigDecimal.ZERO); prepaidFreight.setUsableBalance(account.getUsableBalance());
prepaidFreight.setAccountBalance(account.getAccountBalance()); prepaidFreight.setTakeOutBalance(BigDecimal.ZERO);
prepaidFreight.setOwnerUserNo(account.getOwnerUserNo()); prepaidFreight.setAccountBalance(account.getAccountBalance());
prepaidFreight.setOwnerUserNo(account.getOwnerUserNo());
prepaidFreight.setAccountType(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode());
prepaidFreight.setRunningWaterType(OwnerAccountEnum.RunningWaterStatus.THAW.getCode()); prepaidFreight.setAccountType(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode());
prepaidFreight.setRunningWaterNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.THAW.getCode())); prepaidFreight.setRunningWaterType(OwnerAccountEnum.RunningWaterStatus.THAW.getCode());
ownerRunningWaterRecordDao.saveEntity(prepaidFreight); prepaidFreight.setRunningWaterNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.THAW.getCode()));
} else { ownerRunningWaterRecordDao.saveEntity(prepaidFreight);
log.info("插入保证金解冻流水"); } else {
OwnerRunningWaterRecord prepaidFreight = new OwnerRunningWaterRecord(); log.info("插入网运单保证金解冻流水");
prepaidFreight.setOwnerUserName(runningWaterRecord.getOwnerUserName()); OwnerRunningWaterRecord prepaidFreight = new OwnerRunningWaterRecord();
prepaidFreight.setMobile(runningWaterRecord.getMobile()); prepaidFreight.setOwnerUserName(runningWaterRecord.getOwnerUserName());
prepaidFreight.setCreateBy("系统"); prepaidFreight.setMobile(runningWaterRecord.getMobile());
prepaidFreight.setOrderId(runningWaterRecord.getOrderId()); prepaidFreight.setCreateBy("系统");
prepaidFreight.setOrderNo(runningWaterRecord.getOrderNo()); prepaidFreight.setOrderId(runningWaterRecord.getOrderId());
prepaidFreight.setOrderNo(runningWaterRecord.getOrderNo());
prepaidFreight.setRelationId(null);
prepaidFreight.setAlterationBalance(runningWaterRecord.getAlterationBalance()); prepaidFreight.setRelationId(null);
prepaidFreight.setFrozenBalance(account.getFrozenBalance()); prepaidFreight.setAlterationBalance(runningWaterRecord.getAlterationBalance());
prepaidFreight.setUsableBalance(account.getUsableBalance()); prepaidFreight.setFrozenBalance(account.getFrozenBalance());
prepaidFreight.setTakeOutBalance(BigDecimal.ZERO); prepaidFreight.setUsableBalance(account.getUsableBalance());
prepaidFreight.setAccountBalance(account.getAccountBalance()); prepaidFreight.setTakeOutBalance(BigDecimal.ZERO);
prepaidFreight.setOwnerUserNo(account.getOwnerUserNo()); prepaidFreight.setAccountBalance(account.getAccountBalance());
prepaidFreight.setOwnerUserNo(account.getOwnerUserNo());
prepaidFreight.setAccountType(OwnerAccountEnum.AccountTypeStatus.MARGIN_ACCOUNT.getCode());
prepaidFreight.setRunningWaterType(OwnerAccountEnum.RunningWaterStatus.THAW.getCode()); prepaidFreight.setAccountType(OwnerAccountEnum.AccountTypeStatus.MARGIN_ACCOUNT.getCode());
prepaidFreight.setRunningWaterNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.THAW.getCode())); prepaidFreight.setRunningWaterType(OwnerAccountEnum.RunningWaterStatus.THAW.getCode());
ownerRunningWaterRecordDao.saveEntity(prepaidFreight); prepaidFreight.setRunningWaterNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.THAW.getCode()));
} ownerRunningWaterRecordDao.saveEntity(prepaidFreight);
} }
break;
} }
break;
}
}
}
//处理普通单
private void generateOrdinary(List<OwnerRunningWaterRecord> list) {
while (true) {
int flag = 0;
for (OwnerRunningWaterRecord runningWaterRecord : list) {
OwnerAccount account = ownerAccountDao.getAccountByOwnerUserNoAndAccountType(runningWaterRecord.getOwnerUserNo(), runningWaterRecord.getAccountType());
OwnerAccount entity = new OwnerAccount();
entity.setId(account.getId());
entity.setModifiedTime(account.getModifiedTime());
entity.setAccountBalance(BigDecimal.ZERO);
entity.setUsableBalance(runningWaterRecord.getAlterationBalance());
entity.setFrozenBalance(runningWaterRecord.getAlterationBalance());
flag += ownerAccountDao.thawAccount(entity, LocalDateTime.now());
}
if (flag == list.size()) {
log.info("解冻普通单预付运费、保证金账户,账户扣款已处理,开始执行插入相关流水");
for (OwnerRunningWaterRecord runningWaterRecord : list) {
OwnerAccount account = ownerAccountDao.getAccountByOwnerUserNoAndAccountType(runningWaterRecord.getOwnerUserNo(), runningWaterRecord.getAccountType());
if (runningWaterRecord.getAccountType().equals(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode())) {
log.info("插入预付运费解冻流水");
OwnerRunningWaterRecord prepaidFreight = new OwnerRunningWaterRecord();
prepaidFreight.setOwnerUserName(runningWaterRecord.getOwnerUserName());
prepaidFreight.setMobile(runningWaterRecord.getMobile());
prepaidFreight.setCreateBy("系统");
prepaidFreight.setOrderId(runningWaterRecord.getOrderId());
prepaidFreight.setOrderNo(runningWaterRecord.getOrderNo());
prepaidFreight.setRelationId(null);
prepaidFreight.setAlterationBalance(runningWaterRecord.getAlterationBalance());
prepaidFreight.setFrozenBalance(account.getFrozenBalance());
prepaidFreight.setUsableBalance(account.getUsableBalance());
prepaidFreight.setTakeOutBalance(BigDecimal.ZERO);
prepaidFreight.setAccountBalance(account.getAccountBalance());
prepaidFreight.setOwnerUserNo(account.getOwnerUserNo());
prepaidFreight.setAccountType(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode());
prepaidFreight.setRunningWaterType(OwnerAccountEnum.RunningWaterStatus.THAW.getCode());
prepaidFreight.setRunningWaterNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.THAW.getCode()));
ownerRunningWaterRecordDao.saveEntity(prepaidFreight);
} else {
log.info("插入保证金解冻流水");
OwnerRunningWaterRecord prepaidFreight = new OwnerRunningWaterRecord();
prepaidFreight.setOwnerUserName(runningWaterRecord.getOwnerUserName());
prepaidFreight.setMobile(runningWaterRecord.getMobile());
prepaidFreight.setCreateBy("系统");
prepaidFreight.setOrderId(runningWaterRecord.getOrderId());
prepaidFreight.setOrderNo(runningWaterRecord.getOrderNo());
prepaidFreight.setRelationId(null);
prepaidFreight.setAlterationBalance(runningWaterRecord.getAlterationBalance());
prepaidFreight.setFrozenBalance(account.getFrozenBalance());
prepaidFreight.setUsableBalance(account.getUsableBalance());
prepaidFreight.setTakeOutBalance(BigDecimal.ZERO);
prepaidFreight.setAccountBalance(account.getAccountBalance());
prepaidFreight.setOwnerUserNo(account.getOwnerUserNo());
prepaidFreight.setAccountType(OwnerAccountEnum.AccountTypeStatus.MARGIN_ACCOUNT.getCode());
prepaidFreight.setRunningWaterType(OwnerAccountEnum.RunningWaterStatus.THAW.getCode());
prepaidFreight.setRunningWaterNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.THAW.getCode()));
ownerRunningWaterRecordDao.saveEntity(prepaidFreight);
}
}
break;
} }
} }
} }
......
package com.clx.performance.service.impl.settle; package com.clx.performance.service.impl.settle;
import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.service.settle.OrderChildSyncTransportRecordService; import com.clx.performance.service.settle.OrderChildSyncTransportRecordService;
import com.clx.performance.struct.settle.SettlementDriverDetailStruct;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
...@@ -10,5 +16,19 @@ import org.springframework.stereotype.Service; ...@@ -10,5 +16,19 @@ import org.springframework.stereotype.Service;
* Time 11:42 * Time 11:42
*/ */
@Service @Service
@Slf4j
@AllArgsConstructor
public class OrderChildSyncTransportRecordServiceImpl implements OrderChildSyncTransportRecordService { public class OrderChildSyncTransportRecordServiceImpl implements OrderChildSyncTransportRecordService {
private final OrderChildSyncTransportRecordDao orderChildSyncTransportRecordDao;
private final SettlementDriverDetailStruct struct;
@Override
public void addOrderChildSyncTransportRecord(SettlementDriverDetail detail) {
OrderChildSyncTransportRecord record = struct.convertRecord(detail);
//0:未同步
record.setStatus(0);
orderChildSyncTransportRecordDao.saveEntity(record);
}
} }
...@@ -17,6 +17,7 @@ import com.clx.performance.enums.settle.SettlementOwnerEnum; ...@@ -17,6 +17,7 @@ import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementPlatformEnum; import com.clx.performance.enums.settle.SettlementPlatformEnum;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OwnerInfoService; import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriver; import com.clx.performance.model.settle.SettlementDriver;
...@@ -27,6 +28,7 @@ import com.clx.performance.param.pc.payment.PayParam; ...@@ -27,6 +28,7 @@ import com.clx.performance.param.pc.payment.PayParam;
import com.clx.performance.service.OrderChildLogService; import com.clx.performance.service.OrderChildLogService;
import com.clx.performance.service.PaymentService; import com.clx.performance.service.PaymentService;
import com.clx.performance.service.impl.UniqueOrderNumService; import com.clx.performance.service.impl.UniqueOrderNumService;
import com.clx.performance.service.settle.OrderChildSyncTransportRecordService;
import com.clx.performance.service.settle.SettlementLogService; import com.clx.performance.service.settle.SettlementLogService;
import com.clx.performance.service.settle.SettlementMqHandlerService; import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.service.settle.SettlementService; import com.clx.performance.service.settle.SettlementService;
...@@ -93,6 +95,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -93,6 +95,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Autowired @Autowired
private OrderChildLogService orderChildLogService; private OrderChildLogService orderChildLogService;
@Autowired
private OrderChildSyncTransportRecordService childSyncTransportRecordService;
@Override @Override
...@@ -135,6 +140,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -135,6 +140,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
//车主结算单自动支付 //车主结算单自动支付
if (!settlementDriverDetail.getInvoiceType().equals(SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) { if (!settlementDriverDetail.getInvoiceType().equals(SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) {
paySettlementDriver(settlementDriverDetail); paySettlementDriver(settlementDriverDetail);
} else {
//插入同步网络货运待支付记录
childSyncTransportRecordService.addOrderChildSyncTransportRecord(settlementDriverDetail);
} }
// 更新结算单 // 更新结算单
...@@ -170,6 +178,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -170,6 +178,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementDriver.setLossPrice(detail.getLossPrice()); settlementDriver.setLossPrice(detail.getLossPrice());
settlementDriver.setLossWeight(detail.getLossWeight()); settlementDriver.setLossWeight(detail.getLossWeight());
settlementDriver.setLossFreight(detail.getLossFreight()); settlementDriver.setLossFreight(detail.getLossFreight());
settlementDriver.setPrepayFreightFlag(detail.getPrepayFreightFlag());
settlementDriver.setSettlementFreight(detail.getSettlementFreight()); settlementDriver.setSettlementFreight(detail.getSettlementFreight());
settlementDriver.setInvoiceType(detail.getInvoiceType()); settlementDriver.setInvoiceType(detail.getInvoiceType());
settlementDriver.setSettlementPlatform(String.valueOf(SettlementPlatformEnum.Platform.MSL.getCode())); settlementDriver.setSettlementPlatform(String.valueOf(SettlementPlatformEnum.Platform.MSL.getCode()));
......
...@@ -106,6 +106,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS ...@@ -106,6 +106,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode()); OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode());
settlementOwnerDetail.setPrepayFreight(ans); settlementOwnerDetail.setPrepayFreight(ans);
//生成扣除流水
OwnerRunningWaterRecord runningWaterRecord = new OwnerRunningWaterRecord(); OwnerRunningWaterRecord runningWaterRecord = new OwnerRunningWaterRecord();
runningWaterRecord.setOwnerUserName(orderChild.getOwnerName()); runningWaterRecord.setOwnerUserName(orderChild.getOwnerName());
runningWaterRecord.setMobile(orderChild.getDriverMobile()); runningWaterRecord.setMobile(orderChild.getDriverMobile());
......
...@@ -471,6 +471,7 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService { ...@@ -471,6 +471,7 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
}else{ }else{
if (Objects.equals(settlementOwner.getInvoiceType(), SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) { if (Objects.equals(settlementOwner.getInvoiceType(), SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) {
settlementOwnerDao.updateStatusBySettlementNo(settlementNo,SettlementOwnerEnum.Status.COMPLETED.getCode()); settlementOwnerDao.updateStatusBySettlementNo(settlementNo,SettlementOwnerEnum.Status.COMPLETED.getCode());
//TODO 通知网络货运做货主计费开票标识通知
}else{ }else{
settlementOwnerDao.updateStatusBySettlementNo(settlementNo,SettlementOwnerEnum.Status.INVOICE_TO_BE_MAILED.getCode()); settlementOwnerDao.updateStatusBySettlementNo(settlementNo,SettlementOwnerEnum.Status.INVOICE_TO_BE_MAILED.getCode());
} }
......
package com.clx.performance.service.settle; package com.clx.performance.service.settle;
import com.clx.performance.model.settle.SettlementDriverDetail;
/** /**
* @author kavin * @author kavin
* Date 2023-12-08 * Date 2023-12-08
* Time 11:42 * Time 11:42
*/ */
public interface OrderChildSyncTransportRecordService { public interface OrderChildSyncTransportRecordService {
void addOrderChildSyncTransportRecord(SettlementDriverDetail detail);
} }
package com.clx.performance.struct.settle; package com.clx.performance.struct.settle;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverDetailVO; import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverDetailVO;
import com.msl.common.utils.DateStructUtil; import com.msl.common.utils.DateStructUtil;
...@@ -11,4 +12,6 @@ import java.util.List; ...@@ -11,4 +12,6 @@ import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class}) @Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface SettlementDriverDetailStruct { public interface SettlementDriverDetailStruct {
List<CarrierPageSettlementDriverDetailVO> covertList(List<SettlementDriverDetail> records); List<CarrierPageSettlementDriverDetailVO> covertList(List<SettlementDriverDetail> records);
OrderChildSyncTransportRecord convertRecord(SettlementDriverDetail detail);
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论