提交 ee32a239 authored 作者: liruixin's avatar liruixin

违约结算单金额计算

上级 c86cad94
......@@ -9,6 +9,7 @@ import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderVO;
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.breakcontract.BreakContractOwnerRecordDao;
import com.clx.performance.dao.breakcontract.BreakContractOwnerRuleDao;
import com.clx.performance.dao.breakcontract.BreakContractSettlementLogDao;
......@@ -17,6 +18,7 @@ import com.clx.performance.dao.settle.SettlementPlatformAccountDao;
import com.clx.performance.enums.*;
import com.clx.performance.extranal.order.QuotationService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.breakcontract.BreakContractOwnerRecord;
import com.clx.performance.model.breakcontract.BreakContractOwnerRule;
import com.clx.performance.model.breakcontract.BreakContractSettlementLog;
......@@ -80,6 +82,8 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
private final QuotationService quotationService;
private final BreakContractOwnerRecordService breakContractOwnerRecordService;
private final BreakContractOwnerRecordDao breakContractOwnerRecordDao;
private final OrderGoodsDao orderGoodsDao;
......@@ -333,12 +337,24 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
OrderChildEnum.Status.UNSETTLE.getCode()});
BigDecimal figure ;//总费用
//订单号查询货单
List<OrderGoods> orderGoods = orderGoodsDao.getOrderGoodsListByOrderNo(param.getOrderNo());
if(CollectionUtils.isEmpty(orderGoods)){
BigDecimal totalFreight = param.getTransportWeight().multiply(param.getValidFreightPrice());
figure = totalFreight.multiply(reduceRule.getBeforeRatio()).multiply(param.getWeight())
.divide(param.getTransportWeight(),2, BigDecimal.ROUND_HALF_UP);
}else{
List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(param.getOrderNo(), statusList);
if(CollectionUtils.isEmpty(orderChilds)){
BigDecimal totalFreight = param.getTransportWeight().multiply(param.getValidFreightPrice());
figure = totalFreight.multiply(reduceRule.getBeforeRatio()).multiply(param.getWeight())
figure = totalFreight.multiply(reduceRule.getAfterRatio()).multiply(param.getWeight())
.divide(param.getTransportWeight(),2, BigDecimal.ROUND_HALF_UP);
}else{
BigDecimal deliveredWeight = BigDecimal.ZERO;//已拉运的重量
BigDecimal deliveredFreight = BigDecimal.ZERO;//已拉运的费用
for(OrderChild orderChild : orderChilds){
......@@ -357,7 +373,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
figure = totalFreight.multiply(reduceRule.getAfterRatio()).multiply(param.getWeight())
.divide(param.getTransportWeight(),2, BigDecimal.ROUND_HALF_UP);
}
}
//组装参数 生成违约记录 违约计费 违约结算单
BreakContractOwnerRecordAddParam ownerRecordAddParam = new BreakContractOwnerRecordAddParam();
......@@ -425,12 +441,20 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
OrderChildEnum.Status.UNSETTLE.getCode()});
BigDecimal figure ;//总费用
//订单号查询货单
List<OrderGoods> orderGoods = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
if(CollectionUtils.isEmpty(orderGoods)){
figure = orderInfoFeign.getTransportWeight().multiply(orderInfoFeign.getValidFreightPrice()).multiply(orderCancelRule.getBeforeRatio());
}else{
List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(orderNo, statusList);
LocalDateTime now = LocalDateTime.now();//当前时间
//没有司机拉运
if(CollectionUtils.isEmpty(orderChilds)){
figure = orderInfoFeign.getTransportWeight().multiply(orderInfoFeign.getValidFreightPrice()).multiply(orderCancelRule.getBeforeRatio());
figure = orderInfoFeign.getTransportWeight().multiply(orderInfoFeign.getValidFreightPrice()).multiply(orderCancelRule.getAfterRatio());
}else{
BigDecimal deliveredWeight = BigDecimal.ZERO;//已拉运的重量
BigDecimal cancelWeight = BigDecimal.ZERO;//可取消的重量
......@@ -462,6 +486,8 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
.divide(new BigDecimal(60),2, BigDecimal.ROUND_HALF_UP);
figure = baseFigure.add(truckFigure);
}
}
//组装参数 生成违约记录 违约计费 违约结算单
BreakContractOwnerRecordAddParam ownerRecordAddParam = new BreakContractOwnerRecordAddParam();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论