提交 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; //创建时间
......
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论