mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-13 11:49:49 +08:00
折扣后电费不能大于原始电费金额, 折扣后服务费不能大于原始服务费金额
This commit is contained in:
@@ -957,6 +957,8 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
|||||||
// 尖时段用电量
|
// 尖时段用电量
|
||||||
BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity();
|
BigDecimal sharpUsedElectricity = orderDetail.getSharpUsedElectricity();
|
||||||
if (sharpUsedElectricity != null) {
|
if (sharpUsedElectricity != null) {
|
||||||
|
logger.info("计算订单折扣V2:【{}】, 当前为尖时段, 用电量:{}, orderDetail记录的单价({} + {}), 优惠模板单价({} - {})",
|
||||||
|
orderCode, sharpUsedElectricity, orderDetail.getSharpElectricityPrice(), orderDetail.getSharpServicePrice(), billingTemplateVO.getSharpElectricityPrice(), billingTemplateVO.getSharpServicePrice());
|
||||||
// 该时段电费单价与orderDetail中的电价比较取最小值
|
// 该时段电费单价与orderDetail中的电价比较取最小值
|
||||||
// BigDecimal electricityPrice = billingTemplateVO.getSharpElectricityPrice();
|
// BigDecimal electricityPrice = billingTemplateVO.getSharpElectricityPrice();
|
||||||
BigDecimal electricityPrice = getMinWithPositiveConstraint(billingTemplateVO.getSharpElectricityPrice(), orderDetail.getSharpElectricityPrice());
|
BigDecimal electricityPrice = getMinWithPositiveConstraint(billingTemplateVO.getSharpElectricityPrice(), orderDetail.getSharpElectricityPrice());
|
||||||
@@ -978,6 +980,8 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
|||||||
// 峰时段用电量
|
// 峰时段用电量
|
||||||
BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity();
|
BigDecimal peakUsedElectricity = orderDetail.getPeakUsedElectricity();
|
||||||
if (peakUsedElectricity != null) {
|
if (peakUsedElectricity != null) {
|
||||||
|
logger.info("计算订单折扣V2:【{}】, 当前为峰时段, 用电量:{}, orderDetail记录的单价({} + {}), 优惠模板单价({} - {})",
|
||||||
|
orderCode, peakUsedElectricity, orderDetail.getPeakElectricityPrice(), orderDetail.getPeakServicePrice(), billingTemplateVO.getPeakElectricityPrice(), billingTemplateVO.getPeakServicePrice());
|
||||||
// 计算该时段电费单价
|
// 计算该时段电费单价
|
||||||
BigDecimal electricityPrice = getMinWithPositiveConstraint(billingTemplateVO.getPeakElectricityPrice(), orderDetail.getPeakElectricityPrice());
|
BigDecimal electricityPrice = getMinWithPositiveConstraint(billingTemplateVO.getPeakElectricityPrice(), orderDetail.getPeakElectricityPrice());
|
||||||
// 计算该时段电费 = 电费单价 x 用电量
|
// 计算该时段电费 = 电费单价 x 用电量
|
||||||
@@ -996,6 +1000,8 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
|||||||
// 平时段用电量
|
// 平时段用电量
|
||||||
BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity();
|
BigDecimal flatUsedElectricity = orderDetail.getFlatUsedElectricity();
|
||||||
if (flatUsedElectricity != null) {
|
if (flatUsedElectricity != null) {
|
||||||
|
logger.info("计算订单折扣V2:【{}】, 当前为平时段, 用电量:{}, orderDetail记录的单价({} + {}), 优惠模板单价({} - {})",
|
||||||
|
orderCode, flatUsedElectricity, orderDetail.getFlatElectricityPrice(), orderDetail.getFlatServicePrice(), billingTemplateVO.getFlatElectricityPrice(), billingTemplateVO.getFlatServicePrice());
|
||||||
// 计算该时段电费单价
|
// 计算该时段电费单价
|
||||||
BigDecimal electricityPrice = getMinWithPositiveConstraint(billingTemplateVO.getFlatElectricityPrice(), orderDetail.getFlatElectricityPrice());
|
BigDecimal electricityPrice = getMinWithPositiveConstraint(billingTemplateVO.getFlatElectricityPrice(), orderDetail.getFlatElectricityPrice());
|
||||||
// 计算该时段电费 = 电费单价 x 用电量
|
// 计算该时段电费 = 电费单价 x 用电量
|
||||||
@@ -1014,6 +1020,8 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
|||||||
// 谷时段用电量
|
// 谷时段用电量
|
||||||
BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity();
|
BigDecimal valleyUsedElectricity = orderDetail.getValleyUsedElectricity();
|
||||||
if (valleyUsedElectricity != null) {
|
if (valleyUsedElectricity != null) {
|
||||||
|
logger.info("计算订单折扣V2:【{}】, 当前为谷时段, 用电量:{}, orderDetail记录的单价({} + {}), 优惠模板单价({} - {})",
|
||||||
|
orderCode, valleyUsedElectricity, orderDetail.getValleyElectricityPrice(), orderDetail.getValleyServicePrice(), billingTemplateVO.getValleyElectricityPrice(), billingTemplateVO.getValleyServicePrice());
|
||||||
// 计算该时段电费单价
|
// 计算该时段电费单价
|
||||||
BigDecimal electricityPrice = getMinWithPositiveConstraint(billingTemplateVO.getValleyElectricityPrice(), orderDetail.getValleyElectricityPrice());
|
BigDecimal electricityPrice = getMinWithPositiveConstraint(billingTemplateVO.getValleyElectricityPrice(), orderDetail.getValleyElectricityPrice());
|
||||||
// 计算该时段电费 = 电费单价 x 用电量
|
// 计算该时段电费 = 电费单价 x 用电量
|
||||||
@@ -1093,6 +1101,7 @@ public abstract class AbstractProgramLogic implements InitializingBean {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private BigDecimal getMinWithPositiveConstraint(BigDecimal num1, BigDecimal num2) {
|
private BigDecimal getMinWithPositiveConstraint(BigDecimal num1, BigDecimal num2) {
|
||||||
|
logger.info("获取较小值,并且满足大于0的条件, num1:{}, num2:{}", num1, num2);
|
||||||
BigDecimal valid1 = num1.compareTo(BigDecimal.ZERO) > 0 ? num1 : null;
|
BigDecimal valid1 = num1.compareTo(BigDecimal.ZERO) > 0 ? num1 : null;
|
||||||
BigDecimal valid2 = num2.compareTo(BigDecimal.ZERO) > 0 ? num2 : null;
|
BigDecimal valid2 = num2.compareTo(BigDecimal.ZERO) > 0 ? num2 : null;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user