记得比较的时候要用double类型比较,不要用Double,Double是引用类型用==比较不对 :
//查询未更新的返利额度 Map<返利大区-额度> preRebateMap
List<RebateMonthRegionEntity> list = rebateRegionService.selectByRebateDiscountKey(rebateAmountBO.getId());
Map<String, Double> preRebateMap = new HashMap<String, Double>();
for (RebateMonthRegionEntity rebateMonthRegionEntity : list) {
preRebateMap.put(rebateMonthRegionEntity.getRegionName(), rebateMonthRegionEntity.getDiscountAmount());
}
//只更新返利额度变化的数据
List<RebateMonthRegionEntity> rebateMonthRegionEntityList = rebateAmountBO.getDenomBOList();
int count2 = 0;
for (RebateMonthRegionEntity rebateMonthRegionEntity : rebateMonthRegionEntityList) {
rebateMonthRegionEntity.setUpdateUser(securityUser.getUsername());
rebateMonthRegionEntity.setUpdateTime(new Date());
//前台传来的返利额度值和数据库中额度进行对比的不一致,进行更新。
//注意:Double是引用类型用==比较不对 所以:Double.parseDouble(map.get(key).toString) 转成 double 比较
if (Double.parseDouble(preRebateMap.get(rebateMonthRegionEntity.getRegionName()).toString()) !=
Double.parseDouble(rebateMonthRegionEntity.getDiscountAmount().toString())) {
logger.info("更新人:" + securityUser.getUsername() + " 更新前返利大区:【" + rebateMonthRegionEntity.getRegionName() + "】 " +
"更新前返利额度:【" + preRebateMap.get(rebateMonthRegionEntity.getRegionName()) + "】"+
"更新后返利额度:【" + rebateMonthRegionEntity.getDiscountAmount() + "】");
count2 = rebateRegionService.updateByPrimaryKeySelective(rebateMonthRegionEntity);
}
}