提交 7e7f1a26 authored 作者: liruixin's avatar liruixin

更新赔付时间

上级 b5f163fc
...@@ -271,6 +271,12 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -271,6 +271,12 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
param.setStatus(BreakContractSettlementOwnerEnum.Status.PLATFORM_CONFIRMED_OWNER_PAYMENT.getCode()); param.setStatus(BreakContractSettlementOwnerEnum.Status.PLATFORM_CONFIRMED_OWNER_PAYMENT.getCode());
breakContractSettlementOwnerDao.saveCarrierBreakContractPayee(param); breakContractSettlementOwnerDao.saveCarrierBreakContractPayee(param);
BreakContractOwnerRecord record = new BreakContractOwnerRecord();
record.setSettlementNo(settlementOwner.getSettlementNo());
record.setPayStatus(BreakContractOwnerRecordEnum.PayStatus.YES.getCode());
record.setPayTime(LocalDateTime.now());
breakContractOwnerRecordDao.uploadPayTime(record);
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志----货主付款 //保存结算单日志----货主付款
breakContractSettlementLogService.saveBreakSettlementLog(settlementOwner.getSettlementNo(), breakContractSettlementLogService.saveBreakSettlementLog(settlementOwner.getSettlementNo(),
...@@ -308,6 +314,16 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -308,6 +314,16 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
return ; return ;
} }
//违约金方案
BreakContractOwnerRule ownerRule = breakContractOwnerRuleDao.getEntityByKey(param.getLiquidatedDamagesPlanId())
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(Objects.equals(ownerRule.getStatus(),2)){
throw new ServiceSystemException(PerformanceResultEnum.BREAK_CONTRACT_RULE_NO_FOUND);
}
String autoRuleJson = ownerRule.getAutoRuleJson();//系统自动违规
BreakContractOwnerRuleVO.AutoRule autoRule = JSONObject.parseObject(autoRuleJson, BreakContractOwnerRuleVO.AutoRule.class);
BreakContractOwnerRuleVO.OrderAmountReduceRule reduceRule = autoRule.getOrderAmountReduceRule();//订单吨数减少规则
//运单状态(不包括取消) //运单状态(不包括取消)
List<Integer> statusList = Arrays.asList( List<Integer> statusList = Arrays.asList(
new Integer[]{OrderChildEnum.Status.CREATED.getCode(), OrderChildEnum.Status.PAY.getCode(), new Integer[]{OrderChildEnum.Status.CREATED.getCode(), OrderChildEnum.Status.PAY.getCode(),
...@@ -316,10 +332,12 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -316,10 +332,12 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
OrderChildEnum.Status.ARRIVE_RECEIVE.getCode(), OrderChildEnum.Status.UNLOAD.getCode(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode(), OrderChildEnum.Status.UNLOAD.getCode(),
OrderChildEnum.Status.UNSETTLE.getCode()}); OrderChildEnum.Status.UNSETTLE.getCode()});
BigDecimal totalFreight ;//总费用 BigDecimal figure ;//总费用
List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(param.getOrderNo(), statusList); List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(param.getOrderNo(), statusList);
if(CollectionUtils.isEmpty(orderChilds)){ if(CollectionUtils.isEmpty(orderChilds)){
totalFreight = param.getTransportWeight().multiply(param.getValidFreightPrice()); BigDecimal totalFreight = param.getTransportWeight().multiply(param.getValidFreightPrice());
figure = totalFreight.multiply(reduceRule.getBeforeRatio()).multiply(param.getWeight())
.divide(param.getTransportWeight(),2, BigDecimal.ROUND_HALF_UP);
}else{ }else{
BigDecimal deliveredWeight = BigDecimal.ZERO;//已拉运的重量 BigDecimal deliveredWeight = BigDecimal.ZERO;//已拉运的重量
BigDecimal deliveredFreight = BigDecimal.ZERO;//已拉运的费用 BigDecimal deliveredFreight = BigDecimal.ZERO;//已拉运的费用
...@@ -335,25 +353,15 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -335,25 +353,15 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
} }
BigDecimal noTransitWeight = param.getTransportWeight().subtract(deliveredWeight);//未拉运的重量 BigDecimal noTransitWeight = param.getTransportWeight().subtract(deliveredWeight);//未拉运的重量
BigDecimal noTransitFreight = noTransitWeight.multiply(param.getValidFreightPrice());//未拉运的费用 BigDecimal noTransitFreight = noTransitWeight.multiply(param.getValidFreightPrice());//未拉运的费用
totalFreight = deliveredFreight.add(noTransitFreight); BigDecimal totalFreight = deliveredFreight.add(noTransitFreight);
figure = totalFreight.multiply(reduceRule.getAfterRatio()).multiply(param.getWeight())
.divide(param.getTransportWeight(),2, BigDecimal.ROUND_HALF_UP);
} }
//违约金方案
BreakContractOwnerRule ownerRule = breakContractOwnerRuleDao.getEntityByKey(param.getLiquidatedDamagesPlanId())
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if(Objects.equals(ownerRule.getStatus(),2)){
throw new ServiceSystemException(PerformanceResultEnum.BREAK_CONTRACT_RULE_NO_FOUND);
}
String autoRuleJson = ownerRule.getAutoRuleJson();//系统自动违规
BreakContractOwnerRuleVO.AutoRule autoRule = JSONObject.parseObject(autoRuleJson, BreakContractOwnerRuleVO.AutoRule.class);
BreakContractOwnerRuleVO.OrderAmountReduceRule reduceRule = autoRule.getOrderAmountReduceRule();//订单吨数减少规则
BigDecimal ratio = reduceRule.getBeforeRatio();//比例
//组装参数 生成违约记录 违约计费 违约结算单 //组装参数 生成违约记录 违约计费 违约结算单
BreakContractOwnerRecordAddParam ownerRecordAddParam = new BreakContractOwnerRecordAddParam(); BreakContractOwnerRecordAddParam ownerRecordAddParam = new BreakContractOwnerRecordAddParam();
ownerRecordAddParam.setBreakContractPartyType(BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode()); ownerRecordAddParam.setBreakContractPartyType(BreakContractRecordEnum.BreakContractPartyType.OWNER.getCode());
BigDecimal figure = totalFreight.multiply(ratio).multiply(param.getWeight())
.divide(param.getTransportWeight(),2, BigDecimal.ROUND_HALF_UP);
ownerRecordAddParam.setFigure(figure); ownerRecordAddParam.setFigure(figure);
ownerRecordAddParam.setOrderNo(param.getOrderNo()); ownerRecordAddParam.setOrderNo(param.getOrderNo());
ownerRecordAddParam.setRemark("下调吨数产生违约"); ownerRecordAddParam.setRemark("下调吨数产生违约");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论