diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java index e013488c..76383b39 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java @@ -3542,6 +3542,24 @@ public class BeanTransitionUtils { ddmxxxBO.setSE(detail.getZZSE()); ddmxxxBO.setPH(detail.getCHARG()); ddmxxxBO.setKB(ObjectUtil.isNull(detail.getKTYPE())?"":detail.getKTYPE()+(ObjectUtil.isNull(detail.getKNAME())?"":detail.getKNAME())); + //判断单价*数量与金额的差额大于0.01,大于的话则反算 + //判断小数点后位数,默认为8位,如果为全电,为15位 + if(!ConfigureConstant.STRING_1.equals(ddmxxxBO.getFPHXZ())){ + if(StringUtils.isNotBlank(ddmxxxBO.getJE()) && StringUtils.isNotBlank(ddmxxxBO.getSPSL())){ + int afterPointLength = ConfigureConstant.INT_8; + if(CommonUtils.judgeIsQdfp("",ddpcxxBO.getFPLXDM())){ + afterPointLength = ConfigureConstant.INT_15; + } + String jsXmdj = DecimalCalculateUtil.divNew(ddmxxxBO.getJE(), ddmxxxBO.getSPSL(), afterPointLength); + if (DecimalCalculateUtil.stringCompare(jsXmdj, ddmxxxBO.getDJ()) != 0) { + log.info("项目金额有误,误差不能大于1分钱,开始进行单价反算,JE:{},SPSL:{}",ddmxxxBO.getJE(), ddmxxxBO.getSPSL()); + //判断小数点后位数,默认为8位,如果为全电,为15位 + String xmdj = DecimalCalculateUtil.divNew(ddmxxxBO.getJE(), ddmxxxBO.getSPSL(), afterPointLength); + log.info("项目金额有误,误差不能大于1分钱,计算后的XMDJ:{}",xmdj); + ddmxxxBO.setDJ(xmdj); + } + } + } ddmxList.add(ddmxxxBO); } }