提交 22e05d37 authored 作者: 艾庆国's avatar 艾庆国

承运与无车承运对接

上级 e28eb5e9
...@@ -40,6 +40,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -40,6 +40,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
boolean updateSettlement(OrderChild item); boolean updateSettlement(OrderChild item);
boolean updateCancel(OrderChild item); boolean updateCancel(OrderChild item);
boolean updatePlatformServiceFee(OrderChild item);
Optional<OrderChild> getByChildNo(String childNo); Optional<OrderChild> getByChildNo(String childNo);
......
...@@ -154,6 +154,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -154,6 +154,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
); );
} }
@Override
public boolean updatePlatformServiceFee(OrderChild item) {
return update(lUdWrapper()
.eq(OrderChild::getId, item.getId())
.set(OrderChild::getPlatformServiceFee, item.getPlatformServiceFee())
);
}
@Override @Override
public Optional<OrderChild> getByChildNo(String childNo) { public Optional<OrderChild> getByChildNo(String childNo) {
......
...@@ -18,7 +18,6 @@ import org.springframework.stereotype.Repository; ...@@ -18,7 +18,6 @@ import org.springframework.stereotype.Repository;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
/** /**
* @Author: aiqinguo * @Author: aiqinguo
...@@ -37,6 +36,10 @@ public class SettlementDriverDetailDaoImpl extends BaseDaoImpl<SettlementDriverD ...@@ -37,6 +36,10 @@ public class SettlementDriverDetailDaoImpl extends BaseDaoImpl<SettlementDriverD
.set(SettlementDriverDetail::getPrepayFreightFlag, item.getPrepayFreightFlag()) .set(SettlementDriverDetail::getPrepayFreightFlag, item.getPrepayFreightFlag())
.set(SettlementDriverDetail::getLoanFlag, item.getLoanFlag()) .set(SettlementDriverDetail::getLoanFlag, item.getLoanFlag())
.set(SettlementDriverDetail::getLoanTypeFlag, item.getLoanTypeFlag()) .set(SettlementDriverDetail::getLoanTypeFlag, item.getLoanTypeFlag())
.set(SettlementDriverDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementDriverDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementDriverDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
); );
} }
......
...@@ -37,6 +37,12 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet ...@@ -37,6 +37,12 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
.set(SettlementOwnerDetail::getFinalPaymentStatus, item.getFinalPaymentStatus()) .set(SettlementOwnerDetail::getFinalPaymentStatus, item.getFinalPaymentStatus())
.set(SettlementOwnerDetail::getPrepayFreight, item.getPrepayFreight()) .set(SettlementOwnerDetail::getPrepayFreight, item.getPrepayFreight())
.set(SettlementOwnerDetail::getLoanFreight, item.getLoanFreight()) .set(SettlementOwnerDetail::getLoanFreight, item.getLoanFreight())
.set(SettlementOwnerDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementOwnerDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementOwnerDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
.set(SettlementOwnerDetail::getInvoiceServiceFeeRate, item.getInvoiceServiceFeeRate())
.set(SettlementOwnerDetail::getInvoiceServiceFee, item.getInvoiceServiceFee())
); );
} }
......
...@@ -140,6 +140,7 @@ public class EventListenerComponent { ...@@ -140,6 +140,7 @@ public class EventListenerComponent {
throw e; throw e;
} }
log.info("处理货主借款监听器执行成功"); log.info("处理货主借款监听器执行成功");
settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail); settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail);
settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail); settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail);
......
...@@ -40,6 +40,7 @@ import org.springframework.context.ApplicationEventPublisher; ...@@ -40,6 +40,7 @@ import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -93,11 +94,12 @@ public class OrderChildSyncTransportListener { ...@@ -93,11 +94,12 @@ public class OrderChildSyncTransportListener {
public void transportOrderChildProcess(OrderChild orderChild) { public void transportOrderChildProcess(OrderChild orderChild) {
Integer invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode(); Integer invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).get();
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(), settlementOwnerDetail)); settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(), orderGoods.getInvoiceServiceFeeRate(), settlementOwnerDetail));
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).get();
ThirdOrderChildBrokerParam param = transportSyncService.generateOrderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail); ThirdOrderChildBrokerParam param = transportSyncService.generateOrderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
HttpDTO httpDTOResult = transportFeignService.orderChildSync(param); HttpDTO httpDTOResult = transportFeignService.orderChildSync(param);
String decrypt = ThirdComponent.decrypt(httpDTOResult.getData()); String decrypt = ThirdComponent.decrypt(httpDTOResult.getData());
...@@ -109,7 +111,7 @@ public class OrderChildSyncTransportListener { ...@@ -109,7 +111,7 @@ public class OrderChildSyncTransportListener {
public void extracted(OrderChild orderChild, OrderChildSyncDTO bean, String remark, public void extracted(OrderChild orderChild, OrderChildSyncDTO bean, String remark,
SettlementOwnerDetail settlementOwnerDetail, SettlementOwnerDetail settlementOwnerDetail,
Integer invoiceType, SettlementDriverDetail settlementDriverDetail) { Integer invoiceType, SettlementDriverDetail settlementDriverDetail) {
settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(), settlementOwnerDetail)); OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).get();
if (null != bean && bean.getCode() == 0) { if (null != bean && bean.getCode() == 0) {
log.info("当前OrderChildSyncTransportListener监听同步网络货运成功,运单号为{}", orderChild.getChildNo()); log.info("当前OrderChildSyncTransportListener监听同步网络货运成功,运单号为{}", orderChild.getChildNo());
...@@ -172,19 +174,37 @@ public class OrderChildSyncTransportListener { ...@@ -172,19 +174,37 @@ public class OrderChildSyncTransportListener {
} }
settlementOwnerDetail.setSettlementFreight(settlementFreightCalc(orderChild.getSettlementWay(), settlementOwnerDetail)); settlementOwnerDetail.setSettlementFreight(settlementFreightCalc(orderChild.getSettlementWay(), settlementOwnerDetail));
if (SettlementOwnerEnum.InvoiceType.ORDINARY.getCode().equals(invoiceType)) { if (SettlementOwnerEnum.InvoiceType.ORDINARY.getCode().equals(invoiceType)) {
if (settlementOwnerDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) == 0) { if (settlementOwnerDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) == 0) {
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO_REQUIRE.getCode()); settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO_REQUIRE.getCode());
} }
// 如果开票标识为“普通单”时,开票费率从开票公司“五寨华祥”中获取
settlementOwnerDetail.setInvoiceServiceFeeRate(BigDecimal.ZERO);
//设置开票公司信息
settlementOwnerDetail.setInvoicingCompanyId(orderChild.getInvoicingCompanyId());
settlementOwnerDetail.setInvoicingCompanyShorterName(orderChild.getInvoicingCompanyShorterName());
settlementOwnerDetail.setInvoicingCompanyGroupCode(orderChild.getInvoicingCompanyGroupCode());
settlementDriverDetail.setInvoicingCompanyId(orderChild.getInvoicingCompanyId());
settlementDriverDetail.setInvoicingCompanyShorterName(orderChild.getInvoicingCompanyShorterName());
settlementDriverDetail.setInvoicingCompanyGroupCode(orderChild.getInvoicingCompanyShorterName());
} else { } else {
if (settlementDriverDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) == 0) { if (settlementDriverDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) == 0) {
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO_REQUIRE.getCode()); settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO_REQUIRE.getCode());
} }
// 如果开票标识为“网运单”时,开票费率取货单单所记录的开票费率
settlementOwnerDetail.setInvoiceServiceFeeRate(
orderGoods.getInvoiceServiceFeeRate()==null? BigDecimal.ZERO : orderGoods.getInvoiceServiceFeeRate());
} }
settlementOwnerDetail.setInvoiceType(invoiceType); settlementOwnerDetail.setInvoiceType(invoiceType);
settlementDriverDetail.setInvoiceType(invoiceType); settlementDriverDetail.setInvoiceType(invoiceType);
// 开票服务费
settlementOwnerDetail.setInvoiceServiceFee(invoiceServiceFeeCalc(orderChild.getSettlementWay(), settlementOwnerDetail));
// 开票金额
settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(),
orderGoods.getInvoiceServiceFeeRate(), settlementOwnerDetail));
//货主借款事件处理 //货主借款事件处理
OwnerLoanMqDTO dto = new OwnerLoanMqDTO(); OwnerLoanMqDTO dto = new OwnerLoanMqDTO();
dto.setSettlementOwnerDetail(settlementOwnerDetail); dto.setSettlementOwnerDetail(settlementOwnerDetail);
...@@ -261,20 +281,49 @@ public class OrderChildSyncTransportListener { ...@@ -261,20 +281,49 @@ public class OrderChildSyncTransportListener {
/** /**
* 开票金额 * 开票金额
*/ */
private BigDecimal invoiceFreightCalc(Integer settlementWay, SettlementOwnerDetail settlementOwnerDetail) { private BigDecimal invoiceFreightCalc(Integer settlementWay, BigDecimal invoiceServiceFeeRate, SettlementOwnerDetail settlementOwnerDetail) {
if (Objects.equals(settlementWay, SettlementWayEnum.WayType.LOAD.getCode())) { //订单结算方式为“装车净重”时,开票金额=实际净重*平台运费报价-货损金额。 if (Objects.equals(settlementWay, SettlementWayEnum.WayType.LOAD.getCode())) { //订单结算方式为“装车净重”时,开票金额=实际净重*平台运费报价-货损金额。
return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice()) return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice())
.subtract(settlementOwnerDetail.getLossFreight()); .subtract(settlementOwnerDetail.getLossFreight());
} else { //订单结算方式为“卸车净重”时,开票金额=实际净重*平台运费报价。 }
else if (Objects.equals(settlementWay, SettlementWayEnum.WayType.UNLOAD_LOSS.getCode())) {
if (invoiceServiceFeeRate!=null){
//结算方式为“卸车净重(减货损)”,平台运费报价为“未税”时,开票金额=平台运费单价*实际净重-货损单价*货损吨数+开票服务费。
return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice())
.subtract(settlementOwnerDetail.getLossPrice())
.add(settlementOwnerDetail.getInvoiceServiceFee());
}
else{
//结算方式为“卸车净重(减货损)”,平台运费报价为“含税”时 开票金额=平台运费单价*实际净重-货损单价*货损吨数
return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice())
.subtract(settlementOwnerDetail.getLossFreight());
}
}
else { //订单结算方式为“卸车净重”时,开票金额=实际净重*平台运费报价。
return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice()); return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice());
} }
} }
/**
* 开票服务费金额
*/
private BigDecimal invoiceServiceFeeCalc(Integer settlementWay, SettlementOwnerDetail settlementOwnerDetail) {
return settlementOwnerDetail.getFreight().subtract(settlementOwnerDetail.getLossFreight())
.divide(BigDecimal.ONE.subtract(settlementOwnerDetail.getInvoiceServiceFeeRate()), 0, RoundingMode.HALF_UP)
.multiply(settlementOwnerDetail.getInvoiceServiceFeeRate()).setScale(0, RoundingMode.HALF_UP);
}
private BigDecimal settlementFreightCalc(Integer settlementWay, SettlementOwnerDetail settlementOwnerDetail) { private BigDecimal settlementFreightCalc(Integer settlementWay, SettlementOwnerDetail settlementOwnerDetail) {
if (Objects.equals(settlementWay, SettlementWayEnum.WayType.LOAD.getCode())) { //订单结算方式为“装车净重”时,结算金额=实际净重*平台运费报价-预付运费-货损金额。 if (Objects.equals(settlementWay, SettlementWayEnum.WayType.LOAD.getCode())) { //订单结算方式为“装车净重”时,结算金额=实际净重*平台运费报价-预付运费-货损金额。
return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice()) return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice())
.subtract(settlementOwnerDetail.getPrepayFreight()).subtract(settlementOwnerDetail.getLossFreight()); .subtract(settlementOwnerDetail.getPrepayFreight()).subtract(settlementOwnerDetail.getLossFreight());
} else { //订单结算方式为“卸车净重”时,结算金额=实际净重*平台运费报价-预付运费 }
else if (Objects.equals(settlementWay, SettlementWayEnum.WayType.UNLOAD_LOSS.getCode())) {
//结算方式为“卸车净重(减货损)“,结算金额=开票金额-预付运费金额-借款抵扣金额。
return settlementOwnerDetail.getInvoiceFreight()
.subtract(settlementOwnerDetail.getPrepayFreight())
.subtract(settlementOwnerDetail.getLoanFreight());
}else { //订单结算方式为“卸车净重”时,结算金额=实际净重*平台运费报价-预付运费
return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice()).subtract(settlementOwnerDetail.getPrepayFreight()); return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice()).subtract(settlementOwnerDetail.getPrepayFreight());
} }
} }
......
...@@ -189,6 +189,9 @@ public class OrderGoods implements HasKey<Integer> { ...@@ -189,6 +189,9 @@ public class OrderGoods implements HasKey<Integer> {
@ApiModelProperty("批次号") @ApiModelProperty("批次号")
private Long batchNumber; private Long batchNumber;
@ApiModelProperty("开票服务率%")
private BigDecimal invoiceServiceFeeRate;
@ApiModelProperty("平台服务费费率%") @ApiModelProperty("平台服务费费率%")
private BigDecimal platformServiceFeeRate; private BigDecimal platformServiceFeeRate;
@ApiModelProperty("接单保证金(分/车)") @ApiModelProperty("接单保证金(分/车)")
......
...@@ -50,6 +50,7 @@ public class SettlementDriver implements HasKey<Integer> { ...@@ -50,6 +50,7 @@ public class SettlementDriver implements HasKey<Integer> {
private String payErrorMsg; //支付失败原因 private String payErrorMsg; //支付失败原因
private Integer invoicingCompanyId; //开票公司id private Integer invoicingCompanyId; //开票公司id
private Integer invoicingCompanyShorterName; //开票公司简称 private Integer invoicingCompanyShorterName; //开票公司简称
private String invoicingCompanyGroupCode; //开票公司统一社会信用代码
private BigDecimal platformServiceFee; //平台服务费(分) private BigDecimal platformServiceFee; //平台服务费(分)
private BigDecimal platformServiceFeeRate; //平台服务费费率% private BigDecimal platformServiceFeeRate; //平台服务费费率%
private Integer status; //状态 private Integer status; //状态
......
...@@ -49,7 +49,8 @@ public class SettlementDriverDetail implements HasKey<Integer> { ...@@ -49,7 +49,8 @@ public class SettlementDriverDetail implements HasKey<Integer> {
private BigDecimal settlementFreight; //结算金额(分) private BigDecimal settlementFreight; //结算金额(分)
private Integer invoiceType; //开票标识:1网运单 2普通单 private Integer invoiceType; //开票标识:1网运单 2普通单
private Integer invoicingCompanyId; //开票公司id private Integer invoicingCompanyId; //开票公司id
private Integer invoicingCompanyShorterName; //开票公司简称 private String invoicingCompanyShorterName; //开票公司简称
private String invoicingCompanyGroupCode; //开票公司统一社会信用代码
private BigDecimal platformServiceFee; //平台服务费(分) private BigDecimal platformServiceFee; //平台服务费(分)
private BigDecimal platformServiceFeeRate; //平台服务费费率% private BigDecimal platformServiceFeeRate; //平台服务费费率%
private Integer status; //状态 private Integer status; //状态
......
...@@ -420,6 +420,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -420,6 +420,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setPlatformServiceFeeRate(orderGoods.getPlatformServiceFeeRate()); orderChild.setPlatformServiceFeeRate(orderGoods.getPlatformServiceFeeRate());
orderChild.setPlatformServiceFee(orderChild.getPlatformServiceFeeRate()!=null orderChild.setPlatformServiceFee(orderChild.getPlatformServiceFeeRate()!=null
? orderChild.getFreight().multiply(orderChild.getPlatformServiceFeeRate()) ? orderChild.getFreight().multiply(orderChild.getPlatformServiceFeeRate())
.movePointLeft(2).setScale(0,RoundingMode.HALF_UP)
: null); : null);
orderChild.setDeposit(orderGoods.getDeposit()); orderChild.setDeposit(orderGoods.getDeposit());
......
package com.clx.performance.service.impl.ordergoods;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.ordergoods.OrderGoodsPostService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class OrderGoodsPostServiceImpl implements OrderGoodsPostService {
@Override
public void orderGoodsAdd(OrderGoods orderGoods) {
}
@Override
public void orderGoodsAdd(List<OrderGoods> orderGoodsList) {
}
}
...@@ -63,6 +63,19 @@ public class SettlementDriverDetailServiceImpl implements SettlementDriverDetai ...@@ -63,6 +63,19 @@ public class SettlementDriverDetailServiceImpl implements SettlementDriverDetai
// 结算金额 // 结算金额
settlementDriverDetail.setSettlementFreight(settlementFreightCalc(settlementDriverDetail.getFreight(), settlementDriverDetail.getLossFreight())); settlementDriverDetail.setSettlementFreight(settlementFreightCalc(settlementDriverDetail.getFreight(), settlementDriverDetail.getLossFreight()));
settlementDriverDetail.setInvoicingCompanyId(orderChild.getInvoicingCompanyId());
settlementDriverDetail.setInvoicingCompanyShorterName(orderChild.getInvoicingCompanyShorterName());
settlementDriverDetail.setInvoicingCompanyGroupCode(orderChild.getInvoicingCompanyGroupCode());
// 平台服务费: 司机结算金额*平台服务费费率
settlementDriverDetail.setPlatformServiceFeeRate(orderChild.getPlatformServiceFeeRate()==null
? BigDecimal.ZERO
: orderChild.getPlatformServiceFeeRate());
settlementDriverDetail.setPlatformServiceFee(
settlementDriverDetail.getSettlementFreight()
.multiply(settlementDriverDetail.getPlatformServiceFeeRate()
.setScale(0, RoundingMode.HALF_UP)));
settlementDriverDetailDao.saveEntity(settlementDriverDetail); settlementDriverDetailDao.saveEntity(settlementDriverDetail);
return settlementDriverDetail.getId(); return settlementDriverDetail.getId();
......
...@@ -102,6 +102,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS ...@@ -102,6 +102,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
settlementOwnerDetail.setInvoicingCompanyShorterName(orderChild.getInvoicingCompanyShorterName()); settlementOwnerDetail.setInvoicingCompanyShorterName(orderChild.getInvoicingCompanyShorterName());
settlementOwnerDetail.setInvoicingCompanyGroupCode(orderChild.getInvoicingCompanyGroupCode()); settlementOwnerDetail.setInvoicingCompanyGroupCode(orderChild.getInvoicingCompanyGroupCode());
settlementOwnerDetail.setReportFlag(orderChild.getReportFlag()); settlementOwnerDetail.setReportFlag(orderChild.getReportFlag());
settlementOwnerDetailDao.saveEntity(settlementOwnerDetail); settlementOwnerDetailDao.saveEntity(settlementOwnerDetail);
return settlementOwnerDetail.getId(); return settlementOwnerDetail.getId();
} }
......
...@@ -34,6 +34,7 @@ import org.springframework.stereotype.Service; ...@@ -34,6 +34,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Objects; import java.util.Objects;
@Slf4j @Slf4j
...@@ -95,6 +96,15 @@ public class SettlementServiceImpl implements SettlementService { ...@@ -95,6 +96,15 @@ public class SettlementServiceImpl implements SettlementService {
settlementOwnerDetail.setInvoiceType(invoiceType); settlementOwnerDetail.setInvoiceType(invoiceType);
settlementDriverDetail.setInvoiceType(invoiceType); settlementDriverDetail.setInvoiceType(invoiceType);
// 平台服务费 开票服务费
settlementDriverDetail.setPlatformServiceFeeRate(orderChild.getPlatformServiceFeeRate());
settlementDriverDetail.setPlatformServiceFee(settlementDriverDetail.getSettlementFreight()
.multiply(settlementDriverDetail.getPlatformServiceFeeRate())
.setScale(0, RoundingMode.HALF_UP));
orderChild.setPlatformServiceFee(settlementDriverDetail.getPlatformServiceFee());
orderChildDao.updatePlatformServiceFee(orderChild);
log.info("当前货主结算信息{},车主结算信息:{}", JSONUtil.parse(settlementOwnerDetail), JSONUtil.parse(settlementDriverDetail)); log.info("当前货主结算信息{},车主结算信息:{}", JSONUtil.parse(settlementOwnerDetail), JSONUtil.parse(settlementDriverDetail));
settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail); settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail);
settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail); settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail);
......
package com.clx.performance.service.ordergoods;
import com.clx.performance.model.OrderGoods;
import java.util.List;
public interface OrderGoodsPostService {
void orderGoodsAdd(OrderGoods orderGoods);
void orderGoodsAdd(List<OrderGoods> orderGoodsList);
}
...@@ -17,6 +17,7 @@ import com.clx.performance.enums.PendingOrderWayStatusEnum; ...@@ -17,6 +17,7 @@ import com.clx.performance.enums.PendingOrderWayStatusEnum;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.TruckDemandEnum; import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.ordergoods.OrderGoodsPostService;
import com.clx.performance.strategy.GoodsOrderStrategy; import com.clx.performance.strategy.GoodsOrderStrategy;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
...@@ -66,6 +67,8 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial ...@@ -66,6 +67,8 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
private final IdGenerateSnowFlake idGenerateSnowFlake; private final IdGenerateSnowFlake idGenerateSnowFlake;
private final OrderGoodsPostService orderGoodsPostService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public LocalDateTime goodsOrderProcess(OrderGoodsParams orderGoodsParams, FeignOrderVO orderInfo, LocalDateTime now) { public LocalDateTime goodsOrderProcess(OrderGoodsParams orderGoodsParams, FeignOrderVO orderInfo, LocalDateTime now) {
...@@ -173,6 +176,12 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial ...@@ -173,6 +176,12 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
orderGoods.setSettlementAccountPeriod(orderInfo.getSettlementAccountPeriod()); orderGoods.setSettlementAccountPeriod(orderInfo.getSettlementAccountPeriod());
//设置结算方式 //设置结算方式
orderGoods.setSettlementWay(orderInfo.getSettlementWay()); orderGoods.setSettlementWay(orderInfo.getSettlementWay());
// 平台服务费
orderGoods.setInvoiceServiceFeeRate(orderInfoFeign.getPlatformFreightQuotationTaxRate());
orderGoods.setPlatformServiceFeeRate(orderInfoFeign.getPlatformServiceFeeRate());
orderGoods.setDeposit(orderInfoFeign.getDeposit());
List<OrderOwnTruckVo> orderOwnTruckVos = orderFeign.selectTruckListFeign(orderNo); List<OrderOwnTruckVo> orderOwnTruckVos = orderFeign.selectTruckListFeign(orderNo);
if (orderOwnTruckVos == null || orderOwnTruckVos.isEmpty()) { if (orderOwnTruckVos == null || orderOwnTruckVos.isEmpty()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "全部自由车辆列表数据为空"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "全部自由车辆列表数据为空");
...@@ -197,6 +206,9 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial ...@@ -197,6 +206,9 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
} }
orderGoodsDao.saveBatchEntity(orderGoodsList); orderGoodsDao.saveBatchEntity(orderGoodsList);
// 货单新增后置逻辑
orderGoodsPostService.orderGoodsAdd(orderGoodsList);
UpdateOrderInfoResidueWeightParam param = new UpdateOrderInfoResidueWeightParam(); UpdateOrderInfoResidueWeightParam param = new UpdateOrderInfoResidueWeightParam();
param.setOrderId(orderInfo.getId()); param.setOrderId(orderInfo.getId());
param.setUpdateType("1"); param.setUpdateType("1");
......
...@@ -13,6 +13,7 @@ import com.clx.performance.dao.OrderGoodsDao; ...@@ -13,6 +13,7 @@ import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OrderGoodsTruckBindDao; import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.ordergoods.OrderGoodsPostService;
import com.clx.performance.strategy.GoodsOrderStrategy; import com.clx.performance.strategy.GoodsOrderStrategy;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
...@@ -60,6 +61,7 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia ...@@ -60,6 +61,7 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent; private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
private final IdGenerateSnowFlake idGenerateSnowFlake; private final IdGenerateSnowFlake idGenerateSnowFlake;
private final OrderGoodsPostService orderGoodsPostService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -177,6 +179,12 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia ...@@ -177,6 +179,12 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
orderGoods.setSettlementAccountPeriod(orderInfo.getSettlementAccountPeriod()); orderGoods.setSettlementAccountPeriod(orderInfo.getSettlementAccountPeriod());
//设置结算方式 //设置结算方式
orderGoods.setSettlementWay(orderInfo.getSettlementWay()); orderGoods.setSettlementWay(orderInfo.getSettlementWay());
// 平台服务费
orderGoods.setInvoiceServiceFeeRate(orderInfoFeign.getPlatformFreightQuotationTaxRate());
orderGoods.setPlatformServiceFeeRate(orderInfoFeign.getPlatformServiceFeeRate());
orderGoods.setDeposit(orderInfoFeign.getDeposit());
if (CollectionUtil.isNotEmpty(child.getTruckList())) { if (CollectionUtil.isNotEmpty(child.getTruckList())) {
orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderGoodsNo, child.getTruckList(), now); orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderGoodsNo, child.getTruckList(), now);
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList()); goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList());
...@@ -189,6 +197,10 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia ...@@ -189,6 +197,10 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
orderGoodsList.add(orderGoods); orderGoodsList.add(orderGoods);
} }
orderGoodsDao.saveBatchEntity(orderGoodsList); orderGoodsDao.saveBatchEntity(orderGoodsList);
// 货单新增后置逻辑
orderGoodsPostService.orderGoodsAdd(orderGoodsList);
BigDecimal residueWeight = new BigDecimal(orderInfo.getResidueWeight()); BigDecimal residueWeight = new BigDecimal(orderInfo.getResidueWeight());
if (platSum.compareTo(BigDecimal.ZERO) != 0 && ownSum.compareTo(BigDecimal.ZERO) != 0) { if (platSum.compareTo(BigDecimal.ZERO) != 0 && ownSum.compareTo(BigDecimal.ZERO) != 0) {
BigDecimal residuePlatSum = new BigDecimal(orderInfo.getPlatformResidueCarryWeight()); BigDecimal residuePlatSum = new BigDecimal(orderInfo.getPlatformResidueCarryWeight());
......
...@@ -13,6 +13,7 @@ import com.clx.performance.dao.OrderGoodsDao; ...@@ -13,6 +13,7 @@ import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OrderGoodsTruckBindDao; import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.ordergoods.OrderGoodsPostService;
import com.clx.performance.strategy.GoodsOrderStrategy; import com.clx.performance.strategy.GoodsOrderStrategy;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
...@@ -62,6 +63,7 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In ...@@ -62,6 +63,7 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
private final IdGenerateSnowFlake idGenerateSnowFlake; private final IdGenerateSnowFlake idGenerateSnowFlake;
private final OrderGoodsPostService orderGoodsPostService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -172,6 +174,11 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In ...@@ -172,6 +174,11 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
//设置结算方式 //设置结算方式
orderGoods.setSettlementWay(orderInfo.getSettlementWay()); orderGoods.setSettlementWay(orderInfo.getSettlementWay());
// 平台服务费
orderGoods.setInvoiceServiceFeeRate(orderInfoFeign.getPlatformFreightQuotationTaxRate());
orderGoods.setPlatformServiceFeeRate(orderInfoFeign.getPlatformServiceFeeRate());
orderGoods.setDeposit(orderInfoFeign.getDeposit());
if (CollectionUtil.isNotEmpty(child.getTruckList())) { if (CollectionUtil.isNotEmpty(child.getTruckList())) {
orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderGoodsNo, child.getTruckList(), now); orderGoodsTruckBindDao.saveBatchEntity(orderNo, orderGoodsNo, child.getTruckList(), now);
goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList()); goodsOrderTruckRecordComponent.saveTruckRecord(orderGoodsNo, child.getTruckList());
...@@ -183,6 +190,10 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In ...@@ -183,6 +190,10 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
orderGoodsList.add(orderGoods); orderGoodsList.add(orderGoods);
} }
orderGoodsDao.saveBatchEntity(orderGoodsList); orderGoodsDao.saveBatchEntity(orderGoodsList);
// 货单新增后置逻辑
orderGoodsPostService.orderGoodsAdd(orderGoodsList);
UpdateOrderInfoResidueWeightParam param = new UpdateOrderInfoResidueWeightParam(); UpdateOrderInfoResidueWeightParam param = new UpdateOrderInfoResidueWeightParam();
param.setOrderId(orderInfo.getId()); param.setOrderId(orderInfo.getId());
param.setUpdateType("1"); param.setUpdateType("1");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论