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

运单支付

上级 44c347de
......@@ -58,6 +58,8 @@ public class CarrierPageSettlementDriverVO {
@MoneyOutConvert
@ApiModelProperty(value = "预付运费金额")
private BigDecimal prepayFreight;
@ApiModelProperty(value = "预付运费标示 0:未预付 1:已预付")
private Integer prepayFreightFlag;
@MoneyOutConvert
@ApiModelProperty(value = "结算金额")
private BigDecimal settlementFreight;
......
......@@ -7,6 +7,8 @@ import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author kavin
* Date 2023-12-08
......@@ -14,4 +16,9 @@ import org.springframework.stereotype.Repository;
*/
@Repository
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;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.msl.common.dao.BaseDao;
import java.util.List;
/**
* @author kavin
* Date 2023-12-08
* Time 11:42
*/
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> {
private Integer invoiceType;
@TableField("status")
@ApiModelProperty("状态")
@ApiModelProperty("状态 0: 未同步, 1:已同步 2:回调成功 3:回调失败")
private Integer status;
@TableField("create_time")
......
......@@ -45,6 +45,7 @@ public class SettlementDriver implements HasKey<Integer> {
private BigDecimal settlementFreight; //结算金额(分)
private Integer invoiceType; //开票标识:1网运单 2普通单
private String settlementPlatform; //结算平台
private Integer prepayFreightFlag; //预付运费标示 0:未预付 1:已预付
private String payErrorMsg; //支付失败原因
private Integer status; //状态
private LocalDateTime createTime; //创建时间
......
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.struct.settle.SettlementDriverDetailStruct;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
......@@ -10,5 +16,19 @@ import org.springframework.stereotype.Service;
* Time 11:42
*/
@Service
@Slf4j
@AllArgsConstructor
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;
import com.clx.performance.enums.settle.SettlementPlatformEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriver;
......@@ -27,6 +28,7 @@ import com.clx.performance.param.pc.payment.PayParam;
import com.clx.performance.service.OrderChildLogService;
import com.clx.performance.service.PaymentService;
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.SettlementMqHandlerService;
import com.clx.performance.service.settle.SettlementService;
......@@ -93,6 +95,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Autowired
private OrderChildLogService orderChildLogService;
@Autowired
private OrderChildSyncTransportRecordService childSyncTransportRecordService;
@Override
......@@ -135,6 +140,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
//车主结算单自动支付
if (!settlementDriverDetail.getInvoiceType().equals(SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) {
paySettlementDriver(settlementDriverDetail);
} else {
//插入同步网络货运待支付记录
childSyncTransportRecordService.addOrderChildSyncTransportRecord(settlementDriverDetail);
}
// 更新结算单
......@@ -170,6 +178,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementDriver.setLossPrice(detail.getLossPrice());
settlementDriver.setLossWeight(detail.getLossWeight());
settlementDriver.setLossFreight(detail.getLossFreight());
settlementDriver.setPrepayFreightFlag(detail.getPrepayFreightFlag());
settlementDriver.setSettlementFreight(detail.getSettlementFreight());
settlementDriver.setInvoiceType(detail.getInvoiceType());
settlementDriver.setSettlementPlatform(String.valueOf(SettlementPlatformEnum.Platform.MSL.getCode()));
......
......@@ -106,6 +106,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode());
settlementOwnerDetail.setPrepayFreight(ans);
//生成扣除流水
OwnerRunningWaterRecord runningWaterRecord = new OwnerRunningWaterRecord();
runningWaterRecord.setOwnerUserName(orderChild.getOwnerName());
runningWaterRecord.setMobile(orderChild.getDriverMobile());
......
......@@ -471,6 +471,7 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
}else{
if (Objects.equals(settlementOwner.getInvoiceType(), SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) {
settlementOwnerDao.updateStatusBySettlementNo(settlementNo,SettlementOwnerEnum.Status.COMPLETED.getCode());
//TODO 通知网络货运做货主计费开票标识通知
}else{
settlementOwnerDao.updateStatusBySettlementNo(settlementNo,SettlementOwnerEnum.Status.INVOICE_TO_BE_MAILED.getCode());
}
......
package com.clx.performance.service.settle;
import com.clx.performance.model.settle.SettlementDriverDetail;
/**
* @author kavin
* Date 2023-12-08
* Time 11:42
*/
public interface OrderChildSyncTransportRecordService {
void addOrderChildSyncTransportRecord(SettlementDriverDetail detail);
}
package com.clx.performance.struct.settle;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverDetailVO;
import com.msl.common.utils.DateStructUtil;
......@@ -11,4 +12,6 @@ import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface SettlementDriverDetailStruct {
List<CarrierPageSettlementDriverDetailVO> covertList(List<SettlementDriverDetail> records);
OrderChildSyncTransportRecord convertRecord(SettlementDriverDetail detail);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论