提交 61134c79 authored 作者: 艾庆国's avatar 艾庆国

承运结算单优化-风控

上级 1e7334c7
package com.clx.performance.enums.orderchild;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;
public enum OrderChildRiskEnum {
;
@Getter
@AllArgsConstructor
public enum RiskType {
SYNC_FAIL(1, "同步失败"),
SETTLE_FAIL(2, "结算打回");
private final Integer code;
private final String msg;
public static Optional<RiskType> 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(RiskType::getMsg).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum processMethod {
SYNC_RETRY(1, "重新同步"),
CONVERT_NORMAL(2, "转普通单"),
;
private final Integer code;
private final String msg;
public static Optional<processMethod> 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(processMethod::getMsg).orElse(null);
}
}
@Getter
@AllArgsConstructor
public enum Status {
INIT(0, "待处理"),
PROCESSED(1, "已处理");
private final Integer code;
private final String msg;
public static Optional<Status> 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(Status::getMsg).orElse(null);
}
}
}
package com.clx.performance.dao.impl.settle;
import com.clx.performance.dao.settle.SettlementOrderChildRiskDao;
import com.clx.performance.mapper.settle.SettlementOrderChildRiskMapper;
import com.clx.performance.model.settle.SettlementOrderChildRisk;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
@Repository
public class SettlementOrderChildRiskDaoImpl
extends BaseDaoImpl<SettlementOrderChildRiskMapper, SettlementOrderChildRisk, Integer>
implements SettlementOrderChildRiskDao {
}
\ No newline at end of file
package com.clx.performance.dao.settle;
import com.clx.performance.mapper.settle.SettlementOrderChildRiskMapper;
import com.clx.performance.model.settle.SettlementOrderChildRisk;
import com.msl.common.dao.BaseDao;
public interface SettlementOrderChildRiskDao
extends BaseDao<SettlementOrderChildRiskMapper,
SettlementOrderChildRisk, Integer> {
}
\ No newline at end of file
package com.clx.performance.mapper.settle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.settle.SettlementOrderChildRisk;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SettlementOrderChildRiskMapper extends BaseMapper<SettlementOrderChildRisk> {
String TABLE = "settlement_order_child_risk";
}
\ No newline at end of file
package com.clx.performance.model.settle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.LocalDateTime;
@Getter
@Setter
@NoArgsConstructor
@TableName(autoResultMap = true)
public class SettlementOrderChildRisk implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id; // ID
private String childNo; // 子订单编号
private String truckNo; // 车牌号
private String driverName; // 司机姓名
private String driverMobile; // 司机手机号
private String goodsName; // 货物名称
private Integer invoiceType; // 开票标识:1网运单 2普通单
private LocalDateTime poundAuditTime; // 磅单审核通过时间
private Integer riskType; // 风控标识:1同步失败 2结算打回
private String riskRemark; // 风控失败原因
private Integer processMethod; // 处理方式:1重新同步 2转普通单
private String processBy; // 处理人
private LocalDateTime processTime; // 处理时间
private Integer status; // 处理状态:1待处理 2已处理
private LocalDateTime createTime; // 创建时间
private LocalDateTime modifiedTime; // 修改时间
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
\ No newline at end of file
...@@ -8,10 +8,12 @@ import com.clx.performance.constant.RedissonConstants; ...@@ -8,10 +8,12 @@ import com.clx.performance.constant.RedissonConstants;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao; import com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.SettlementOrderChildRiskDao;
import com.clx.performance.dao.settle.*; import com.clx.performance.dao.settle.*;
import com.clx.performance.dto.InvoicingStatusNotifyDTO; import com.clx.performance.dto.InvoicingStatusNotifyDTO;
import com.clx.performance.dto.PayStatusNotifyDTO; import com.clx.performance.dto.PayStatusNotifyDTO;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
import com.clx.performance.enums.orderchild.OrderChildRiskEnum;
import com.clx.performance.enums.settle.*; import com.clx.performance.enums.settle.*;
import com.clx.performance.extranal.broker.BrokerService; import com.clx.performance.extranal.broker.BrokerService;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
...@@ -19,8 +21,8 @@ import com.clx.performance.extranal.user.OrderService; ...@@ -19,8 +21,8 @@ import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.extranal.user.OwnerInfoService; import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.listener.OrderChildSyncTransportListener; import com.clx.performance.listener.OrderChildSyncTransportListener;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildSyncTransportInvoiceRecord;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementOrderChildRisk;
import com.clx.performance.model.settle.*; import com.clx.performance.model.settle.*;
import com.clx.performance.param.pc.payment.PayParam; import com.clx.performance.param.pc.payment.PayParam;
import com.clx.performance.param.pc.payment.PayPlatformFeeParam; import com.clx.performance.param.pc.payment.PayPlatformFeeParam;
...@@ -125,6 +127,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -125,6 +127,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Autowired @Autowired
private OrderChildSyncTransportRecordDao orderChildSyncTransportRecordDao; private OrderChildSyncTransportRecordDao orderChildSyncTransportRecordDao;
@Autowired
private SettlementOrderChildRiskDao settlementOrderChildRiskDao;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void settlementStatistics(SettlementStatisticsMqParam mq) { public void settlementStatistics(SettlementStatisticsMqParam mq) {
...@@ -262,9 +267,22 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -262,9 +267,22 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
// remark += result.getRiskReason(); // remark += result.getRiskReason();
// } // }
// 同步失败
if (Objects.equals(result.getSyncStatus(), 2)) { if (Objects.equals(result.getSyncStatus(), 2)) {
invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode(); invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode();
remark += result.getSyncMsg(); remark += result.getSyncMsg();
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
settlementOrderChildRisk.setChildNo(orderChild.getChildNo());
settlementOrderChildRisk.setTruckNo(orderChild.getTruckNo());
settlementOrderChildRisk.setDriverName(orderChild.getDriverName());
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(OrderChildRiskEnum.RiskType.SYNC_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
} }
if (Objects.equals(result.getSyncStatus(), 0)) { if (Objects.equals(result.getSyncStatus(), 0)) {
...@@ -338,6 +356,19 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -338,6 +356,19 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
payStatusNotifyDTO.setChildNo(mq.getChildNo()); payStatusNotifyDTO.setChildNo(mq.getChildNo());
orderChildSyncTransportRecordService.updateStatus(payStatusNotifyDTO); orderChildSyncTransportRecordService.updateStatus(payStatusNotifyDTO);
} }
else {
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
settlementOrderChildRisk.setChildNo(orderChild.getChildNo());
settlementOrderChildRisk.setTruckNo(orderChild.getTruckNo());
settlementOrderChildRisk.setDriverName(orderChild.getDriverName());
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(OrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
}
} }
@Override @Override
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论