feature 1.修改sap传入的单价精度不够的问题

release
zhenghaiyang@ele-cloud.com 2 years ago
parent e61cd353e7
commit cc827cceac
  1. 18
      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.setSE(detail.getZZSE());
ddmxxxBO.setPH(detail.getCHARG()); ddmxxxBO.setPH(detail.getCHARG());
ddmxxxBO.setKB(ObjectUtil.isNull(detail.getKTYPE())?"":detail.getKTYPE()+(ObjectUtil.isNull(detail.getKNAME())?"":detail.getKNAME())); 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); ddmxList.add(ddmxxxBO);
} }
} }

Loading…
Cancel
Save