提交 ca4112be authored 作者: 马路路's avatar 马路路

Merge remote-tracking branch 'origin/v30.6_order_quote_20241022' into test_jdk17

......@@ -9,4 +9,6 @@ public interface InvoicingCompanyService {
InvoicingCompanyVO getInvoicingCompanyByGroupCode(String companyGroupCode);
Integer getInvoicingConfigTypeByOrderNo(String orderNo);
}
......@@ -29,4 +29,12 @@ public class InvoicingCompanyServiceImpl implements InvoicingCompanyService {
.map(Result::getData)
.orNull();
}
@Override
public Integer getInvoicingConfigTypeByOrderNo(String orderNo) {
return Optional.of(invoicingCompanyFeign.getInvoicingConfigTypeByOrderNo(orderNo))
.filter(Result::succeed)
.map(Result::getData)
.orNull();
}
}
......@@ -51,6 +51,7 @@ public class SettlementDriverDetail implements HasKey<Integer> {
private Integer invoicingCompanyId; //开票公司id
private String invoicingCompanyShorterName; //开票公司简称
private String invoicingCompanyGroupCode; //开票公司统一社会信用代码
private Integer invoiceConfigType; //开票配置类型:0-否,1-是
private BigDecimal platformServiceFee; //平台服务费(分)
private BigDecimal platformServiceFeeRate; //平台服务费费率%
private Integer payAcceptStatus; //支付受理状态:0未受理支付 1支付受理中 2已受理支付
......
......@@ -25,6 +25,7 @@ public class SettlementOrderChildRisk implements HasKey<Integer> {
private String driverMobile; // 司机手机号
private String goodsName; // 货物名称
private Integer invoiceType; // 开票标识:1网运单 2普通单
private Integer invoiceConfigType; // 开票配置:0否 2是
private LocalDateTime poundAuditTime; // 磅单审核通过时间
private Integer riskType; // 风控标识:1同步失败 2结算打回
private String riskRemark; // 风控失败原因
......
......@@ -62,6 +62,7 @@ public class SettlementOwnerDetail implements HasKey<Integer> {
private Integer invoiceType; //开票标识:1网运单 2普通单
private BigDecimal invoiceServiceFee; //开票服务费(分)
private BigDecimal invoiceServiceFeeRate; //开票服务率
private Integer invoiceConfigType; //开票配置类型:0-否,1-是
private Integer finalPaymentStatus; //尾款状态 0-否,1-是,2-无需支付
private Integer invoiceTypeStatus; // 开票标识状态:0未获取 1获取中 2获取成功 3获取失败
private Integer invoiceStatus; //开票状态 0-否,1-是,2-无需开票
......
package com.clx.performance.service.broker;
import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriver;
......@@ -9,9 +10,10 @@ import com.clx.performance.model.settle.SettlementOwnerDetail;
public interface OrderChildBrokerService {
void orderChildSync(OrderChild orderChild, OrderGoods orderGoods, SettlementOwnerDetail settlementOwnerDetail,
SettlementDriverDetail settlementDriverDetail);
SettlementDriverDetail settlementDriverDetail, OwnerQuotationDetailVO quotationDetailVO);
void orderChildUpdate(OrderChild orderChild, OrderGoods orderGoods, SettlementOwnerDetail settlementOwnerDetail,
SettlementDriverDetail settlementDriverDetail, SettlementDriver settlementDriver);
SettlementDriverDetail settlementDriverDetail, SettlementDriver settlementDriver,
OwnerQuotationDetailVO quotationDetailVO);
void orderChildDriverPay(SettlementDriverDetail settlementDriverDetail);
......
package com.clx.performance.service.impl.broker;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.SettlementDriverDao;
......@@ -10,6 +12,7 @@ import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementDriverDetailEnum;
import com.clx.performance.enums.settle.SettlementOrderChildRiskEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.extranal.order.QuotationService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriver;
......@@ -58,6 +61,9 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
@Autowired
private SettlementPostService settlementPostService;
@Autowired
private QuotationService quotationService;
@Transactional(rollbackFor = Exception.class)
@Override
public void orderChildSync(BrokerOrderChildSyncMqParam mq) {
......@@ -80,6 +86,10 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
// 如果有发票配置,则更新
if (Objects.nonNull(settlementOwnerDetail.getInvoiceConfigType())) {
settlementOrderChildRisk.setInvoiceConfigType(settlementOwnerDetail.getInvoiceConfigType());
}
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark("同步无车承运异常");
......@@ -101,13 +111,17 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 获取最新订单报价数据
OwnerQuotationDetailVO quotationDetailVO = quotationService.getQuotationByOrderNo(orderChild.getOrderNo())
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 更新状态
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.PROCESSING.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
try{
// 同步broker
orderChildBrokerService.orderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
orderChildBrokerService.orderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail, quotationDetailVO);
} catch (Exception e) {
log.info("同步无车承运失败, child:{}, msg:{}", orderChild.getChildNo(), ExceptionUtils.getStackTrace(e));
}
......@@ -129,6 +143,10 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
SettlementDriver settlementDriver = settlementDriverDao
.getByChildNo(orderChild.getChildNo()).orNull();
// 获取最新订单报价数据
OwnerQuotationDetailVO quotationDetailVO = quotationService.getQuotationByOrderNo(orderChild.getOrderNo())
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if (Objects.equals(settlementOwnerDetail.getReportFlag(), com.clx.order.enums.OrderEnum.ReportFlag.NO.getCode())){
return;
}
......@@ -143,7 +161,7 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
try{
// 更新broker
orderChildBrokerService.orderChildUpdate(orderChild, orderGoods, settlementOwnerDetail,
settlementDriverDetail, settlementDriver);
settlementDriverDetail, settlementDriver, quotationDetailVO);
} catch (Exception e) {
log.info("更新无车承运失败, child:{}, msg:{}", orderChild.getChildNo(), ExceptionUtils.getStackTrace(e));
}
......
......@@ -5,6 +5,7 @@ import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.pc.carrier.InvoicingCompanyVO;
import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO;
import com.clx.performance.dao.OrderChildImageDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.enums.PerformanceResultEnum;
......@@ -67,19 +68,20 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
@Override
public void orderChildSync(OrderChild orderChild, OrderGoods orderGoods, SettlementOwnerDetail settlementOwnerDetail,
SettlementDriverDetail settlementDriverDetail) {
SettlementDriverDetail settlementDriverDetail, OwnerQuotationDetailVO quotationDetailVO) {
TransportParam transportParam = buildParam(orderChild, orderGoods, settlementOwnerDetail,
settlementDriverDetail, null);
settlementDriverDetail, null, quotationDetailVO);
brokerService.orderChildSync(transportParam);
}
@Override
public void orderChildUpdate(OrderChild orderChild, OrderGoods orderGoods, SettlementOwnerDetail settlementOwnerDetail,
SettlementDriverDetail settlementDriverDetail, SettlementDriver settlementDriver) {
SettlementDriverDetail settlementDriverDetail, SettlementDriver settlementDriver,
OwnerQuotationDetailVO quotationDetailVO) {
TransportParam transportParam = buildParam(orderChild, orderGoods, settlementOwnerDetail,
settlementDriverDetail, settlementDriver);
settlementDriverDetail, settlementDriver, quotationDetailVO);
// 运单更新
brokerService.orderChildUpdate(transportParam);
......@@ -93,7 +95,8 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
}
private TransportParam buildParam(OrderChild orderChild, OrderGoods orderGoods, SettlementOwnerDetail settlementOwnerDetail,
SettlementDriverDetail settlementDriverDetail, SettlementDriver settlementDriver){
SettlementDriverDetail settlementDriverDetail, SettlementDriver settlementDriver,
OwnerQuotationDetailVO quotationDetailVO){
String host = documentFeign.getHost().getData();
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderGoods.getOrderNo());
......@@ -300,6 +303,10 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
SettlementOwnerDetailEnum.InvoiceStatus.YES.getCode())? 1 : 0);
orderChildInfo.setSettleStatus(settlementDriver!=null
&& Objects.equals(settlementDriver.getStatus(), SettlementDriverEnum.Status.SETTLED.getCode())? 1 : 0);
// 开票票配置
orderChildInfo.setInvoiceNeed(quotationDetailVO.getInvoiceConfigType());
// 预估运费单价
orderChildInfo.setPredictFreightPrice(quotationDetailVO.getForecastFreightQuotation().intValue());
transportParam.setOrder(orderInfo);
transportParam.setOrderChildImage(imageList);
......
......@@ -6,6 +6,7 @@ import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.settle.SettlementDriverEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.extranal.order.InvoicingCompanyService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.param.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverDetailParam;
......@@ -41,6 +42,7 @@ public class SettlementDriverDetailServiceImpl implements SettlementDriverDetai
private final SettlementDriverDetailDao settlementDriverDetailDao;
private final SettlementDriverDetailStruct settlementOwnerDetailStruct;
private final InvoicingCompanyService invoicingCompanyService;
@Override
public SettlementDriverDetail saveSettlementDetail(OrderChild orderChild) {
......@@ -85,6 +87,12 @@ public class SettlementDriverDetailServiceImpl implements SettlementDriverDetai
? BigDecimal.ZERO
: orderChild.getPlatformServiceFee());
// 开票配置
Integer invoiceConfigType = invoicingCompanyService.getInvoicingConfigTypeByOrderNo(orderChild.getOrderNo());
if (Objects.nonNull(invoiceConfigType)) {
settlementDriverDetail.setInvoiceConfigType(invoiceConfigType);
}
settlementDriverDetailDao.saveEntity(settlementDriverDetail);
return settlementDriverDetail;
......@@ -154,21 +162,22 @@ public class SettlementDriverDetailServiceImpl implements SettlementDriverDetai
fieldList.add(new ExcelField(4, "车主名称", "driverName", 5000));
fieldList.add(new ExcelField(5, "货物名称", "goodsName", 5000));
fieldList.add(new ExcelField(6, "车牌号", "truckNo", 5000));
fieldList.add(new ExcelField(7, "开票公司", "invoicingCompanyShorterName", 5000));
fieldList.add(new ExcelField(8, "开票标识", "invoiceType", 5000));
fieldList.add(new ExcelField(9, "预付标识", "prepayFreightFlag", 5000));
fieldList.add(new ExcelField(7, "开票配置", "invoicingConfigType", 5000));
fieldList.add(new ExcelField(8, "开票公司", "invoicingCompanyShorterName", 5000));
fieldList.add(new ExcelField(9, "开票标识", "invoiceType", 5000));
fieldList.add(new ExcelField(10, "借款标识", "loanFlagMsg", 5000));
fieldList.add(new ExcelField(11, "实际净重(吨)", "weight", 5000));
fieldList.add(new ExcelField(12, "运费单价", "freightPrice", 5000));
fieldList.add(new ExcelField(13, "应付运费", "freight", 5000));
fieldList.add(new ExcelField(14, "货损单价", "lossPrice", 5000));
fieldList.add(new ExcelField(15, "货损吨数", "lossWeight", 5000));
fieldList.add(new ExcelField(16, "货损金额", "lossFreight", 5000));
fieldList.add(new ExcelField(17, "结算金额", "settlementFreight", 5000));
fieldList.add(new ExcelField(18, "毛利率", "platformServiceFeeRate", 5000));
fieldList.add(new ExcelField(19, "毛利润", "platformServiceFee", 5000));
fieldList.add(new ExcelField(20, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(21, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(11, "预付标识", "prepayFreightFlag", 5000));
fieldList.add(new ExcelField(12, "实际净重(吨)", "weight", 5000));
fieldList.add(new ExcelField(13, "运费单价", "freightPrice", 5000));
fieldList.add(new ExcelField(14, "应付运费", "freight", 5000));
fieldList.add(new ExcelField(15, "货损单价", "lossPrice", 5000));
fieldList.add(new ExcelField(16, "货损吨数", "lossWeight", 5000));
fieldList.add(new ExcelField(17, "货损金额", "lossFreight", 5000));
fieldList.add(new ExcelField(18, "结算金额", "settlementFreight", 5000));
fieldList.add(new ExcelField(19, "毛利率", "platformServiceFeeRate", 5000));
fieldList.add(new ExcelField(20, "毛利润", "platformServiceFee", 5000));
fieldList.add(new ExcelField(21, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(22, "创建时间", "createTime", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
......@@ -185,6 +194,8 @@ public class SettlementDriverDetailServiceImpl implements SettlementDriverDetai
rowData.add(new ExcelData(dto.getDriverName()));
rowData.add(new ExcelData(dto.getGoodsName()));
rowData.add(new ExcelData(dto.getTruckNo()));
// 开票配置
rowData.add(new ExcelData(dto.getInvoicingConfigType()==null?null:SettlementOwnerEnum.InvoiceConfigType.getMsgByCode(dto.getInvoicingConfigType())));
rowData.add(new ExcelData(dto.getInvoicingCompanyShorterName()));
rowData.add(new ExcelData(dto.getInvoiceType()==null?null:SettlementOwnerEnum.InvoiceType.getMsgByCode(dto.getInvoiceType())));
rowData.add(new ExcelData(dto.getPrepayFreightFlag()==null?null:SettlementDriverEnum.PrepayFreightFlag.getMsgByCode(dto.getPrepayFreightFlag())));
......
......@@ -365,6 +365,10 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
// 防止历史数据不存在
if (Objects.nonNull(settlementOwnerDetail.getInvoiceConfigType())) {
settlementOrderChildRisk.setInvoiceConfigType(settlementOwnerDetail.getInvoiceConfigType());
}
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SYNC_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
......@@ -474,6 +478,10 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
// 防止历史数据没有出现报错
if (Objects.nonNull(settlementOwnerDetail.getInvoiceConfigType())) {
settlementOrderChildRisk.setInvoiceConfigType(settlementOwnerDetail.getInvoiceConfigType());
}
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SYNC_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
......@@ -551,6 +559,10 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
// 防止历史数据没有出现报错
if (Objects.nonNull(settlementOwnerDetail.getInvoiceConfigType())) {
settlementDriverDetail.setInvoiceConfigType(settlementOwnerDetail.getInvoiceConfigType());
}
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SYNC_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
......@@ -592,6 +604,10 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
// 防止历史数据没有出现报错
if (Objects.nonNull(settlementOwnerDetail.getInvoiceConfigType())) {
settlementOrderChildRisk.setInvoiceConfigType(settlementOwnerDetail.getInvoiceConfigType());
}
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSettleMsg());
......
......@@ -144,14 +144,15 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
fieldList.add(new ExcelField(3, "司机联系电话", "driverMobile", 5000));
fieldList.add(new ExcelField(4, "货物名称", "goodsName", 5000));
fieldList.add(new ExcelField(5, "开票标识", "invoiceType", 5000));
fieldList.add(new ExcelField(6, "风控标识", "riskType", 5000));
fieldList.add(new ExcelField(7, "风控失败原因", "riskRemark", 5000));
fieldList.add(new ExcelField(8, "处理状态", "status", 5000));
fieldList.add(new ExcelField(9, "处理方式", "processMethod", 5000));
fieldList.add(new ExcelField(10, "磅单审核通过时间", "poundAuditTime", 5000));
fieldList.add(new ExcelField(11, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(12, "处理人", "processBy", 5000));
fieldList.add(new ExcelField(13, "处理时间", "processTime", 5000));
fieldList.add(new ExcelField(6, "开票配置", "invoiceConfigType", 5000));
fieldList.add(new ExcelField(7, "风控标识", "riskType", 5000));
fieldList.add(new ExcelField(8, "风控失败原因", "riskRemark", 5000));
fieldList.add(new ExcelField(9, "处理状态", "status", 5000));
fieldList.add(new ExcelField(10, "处理方式", "processMethod", 5000));
fieldList.add(new ExcelField(11, "磅单审核通过时间", "poundAuditTime", 5000));
fieldList.add(new ExcelField(12, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(13, "处理人", "processBy", 5000));
fieldList.add(new ExcelField(14, "处理时间", "processTime", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
......@@ -164,6 +165,7 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
rowData.add(new ExcelData(vo.getGoodsName()));
rowData.add(new ExcelData(vo.getInvoiceType()==null?null:SettlementOwnerEnum.InvoiceType.getMsgByCode(vo.getInvoiceType())));
rowData.add(new ExcelData(vo.getInvoiceConfigType()==null?null:SettlementOwnerEnum.InvoiceConfigType.getMsgByCode(vo.getInvoiceConfigType())));
rowData.add(new ExcelData(vo.getRiskType()==null?null:SettlementOrderChildRiskEnum.RiskType.getMsgByCode(vo.getRiskType())));
rowData.add(new ExcelData(vo.getRiskRemark()));
rowData.add(new ExcelData(vo.getStatus()==null?null:SettlementOrderChildRiskEnum.Status.getMsgByCode(vo.getStatus())));
......
......@@ -147,11 +147,6 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
//借款抵扣金额初始化
settlementOwnerDetail.setLoanFreight(BigDecimal.ZERO);
//设置开票公司信息
settlementOwnerDetail.setInvoicingCompanyId(orderChild.getInvoicingCompanyId());
settlementOwnerDetail.setInvoicingCompanyShorterName(orderChild.getInvoicingCompanyShorterName());
settlementOwnerDetail.setInvoicingCompanyGroupCode(orderChild.getInvoicingCompanyGroupCode());
// 查询开票公司
InvoicingCompanyVO invoiceCompany = invoicingCompanyService.getInvoicingCompany(
settlementOwnerDetail.getInvoicingCompanyId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
......@@ -170,6 +165,20 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
settlementOwnerDetail.setInvoiceFreight(
settlementCommonService.invoiceFreightCalc(orderChild.getSettlementWay(),
orderGoods.getInvoiceServiceFeeRate(), settlementOwnerDetail));
// 开票配置
Integer invoicingConfigType = invoicingCompanyService.getInvoicingConfigTypeByOrderNo(orderChild.getOrderNo());
settlementOwnerDetail.setInvoiceConfigType(invoicingConfigType);
// 若开票配置为否,设置开票标识为普通单
if (Objects.nonNull(invoicingConfigType) && Objects.equals(invoicingConfigType, InvoicingCompanyEnum.YesAndNo.NO.getCode())) {
// 赋值开票标识为普通单
settlementDriverDetail.setInvoiceType(InvoicingCompanyEnum.RiskProcessType.AUTO.getCode());
// 若开票配置非空,且为是,则开票公司信息
} else if (Objects.nonNull(invoicingConfigType) && Objects.equals(invoicingConfigType, InvoicingCompanyEnum.YesAndNo.YES.getCode())) {
//设置开票公司信息
settlementOwnerDetail.setInvoicingCompanyId(orderChild.getInvoicingCompanyId());
settlementOwnerDetail.setInvoicingCompanyShorterName(orderChild.getInvoicingCompanyShorterName());
settlementOwnerDetail.setInvoicingCompanyGroupCode(orderChild.getInvoicingCompanyGroupCode());
}
// 结算金额
settlementOwnerDetail.setSettlementFreight(
......@@ -545,9 +554,10 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
fieldList.add(new ExcelField(16, "开票金额", "invoiceFreight", 5000));
fieldList.add(new ExcelField(17, "开票公司", "invoicingCompanyShorterName", 5000));
fieldList.add(new ExcelField(18, "开票标识", "invoiceType", 5000));
fieldList.add(new ExcelField(19, "订单编号", "orderNo", 5000));
fieldList.add(new ExcelField(20, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(21, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(19, "开票配置", "invoiceConfigType", 5000));
fieldList.add(new ExcelField(20, "订单编号", "orderNo", 5000));
fieldList.add(new ExcelField(21, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(22, "创建时间", "createTime", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
......@@ -575,6 +585,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
rowData.add(new ExcelData(dto.getInvoiceFreight()==null?null:dto.getInvoiceFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoicingCompanyShorterName()));
rowData.add(new ExcelData(dto.getInvoiceType()==null?null:SettlementOwnerEnum.InvoiceType.getMsgByCode(dto.getInvoiceType())));
rowData.add(new ExcelData(dto.getInvoicingConfigType()==null?null:SettlementOwnerEnum.InvoiceConfigType.getMsgByCode(dto.getInvoicingConfigType())));
rowData.add(new ExcelData(dto.getOrderNo()));
rowData.add(new ExcelData(dto.getSettlementNo()));
rowData.add(new ExcelData(dto.getCreateTime()));
......
......@@ -134,7 +134,24 @@ public enum SettlementOwnerEnum {
}
}
@Getter
@AllArgsConstructor
public enum InvoiceConfigType {
NO(0, "否"),
YES(1, "是"),
;
private final Integer code;
private final String msg;
public static Optional<InvoiceConfigType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(InvoiceConfigType::getMsg).orElse(null);
}
}
......
......@@ -82,4 +82,10 @@ public class OpenOrderChildDTO {
@Schema(description = "结算状态 1 已结算 ", example = "1234124")
private Integer settleStatus;
@Schema(description = "是否需要开票配置 0:否 1:是", example = "1", required = true)
private Integer invoiceNeed;
@Schema(description = "预估运费单价(分/吨)", example = "162", required = true)
private Integer predictFreightPrice;
}
......@@ -78,6 +78,8 @@ public class CarrierPageSettlementDriverDetailVO {
private Integer invoicingCompanyId;
@Schema(description = "开票公司简称")
private String invoicingCompanyShorterName;
@Schema(description = "开票配置")
private Integer invoicingConfigType;
@MoneyOutConvert
@Schema(description = "平台服务费")
private BigDecimal platformServiceFee;
......
......@@ -74,6 +74,8 @@ public class CarrierPageSettlementOwnerDetailVO {
private BigDecimal invoiceServiceFee;
@Schema(description = "开票服务率")
private BigDecimal invoiceServiceFeeRate;
@Schema(description = "开票配置:0-否,1-是")
private Integer invoicingConfigType;
@MoneyOutConvert
@Schema(description = "借款抵扣金额")
private BigDecimal loanFreight;
......
......@@ -31,6 +31,9 @@ public class SettlementOrderChildRiskVO {
@Schema(description = "开票标识:1网运单 2普通单")
private Integer invoiceType;
@Schema(description = "开票配置,0否,1是")
private Integer invoiceConfigType;
@Schema(description = "磅单审核通过时间")
private String poundAuditTime;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论