|
|
@ -1994,7 +1994,6 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
comm.setSl(format.format(new BigDecimal(sl).divide(new BigDecimal("100"), 3, RoundingMode.HALF_UP)));//不需要转换%
|
|
|
|
comm.setSl(format.format(new BigDecimal(sl).divide(new BigDecimal("100"), 3, RoundingMode.HALF_UP)));//不需要转换%
|
|
|
|
comm.setGgxh(StringUtils.isNotBlank(itemInfo.getGgxh())?BaseServiceBeanTransitionUtils.ggxhTransition(itemInfo.getGgxh()):"");//切除40
|
|
|
|
comm.setGgxh(StringUtils.isNotBlank(itemInfo.getGgxh())?BaseServiceBeanTransitionUtils.ggxhTransition(itemInfo.getGgxh()):"");//切除40
|
|
|
|
comm.setXmdw(itemInfo.getXmdw()); |
|
|
|
comm.setXmdw(itemInfo.getXmdw()); |
|
|
|
comm.setXmdj(StringUtils.isNotBlank(itemInfo.getXmdj())?itemInfo.getXmdj():""); |
|
|
|
|
|
|
|
comm.setHsbz(itemInfo.getHsbz()); |
|
|
|
comm.setHsbz(itemInfo.getHsbz()); |
|
|
|
comm.setYcbz(ConfigureConstant.STRING_0); |
|
|
|
comm.setYcbz(ConfigureConstant.STRING_0); |
|
|
|
comm.setYhzcbs(itemInfo.getYhzcbs()); |
|
|
|
comm.setYhzcbs(itemInfo.getYhzcbs()); |
|
|
@ -2039,8 +2038,9 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
t.setXmmc(StringUtils.isBlank(t.getXmmc())?"":t.getXmmc()); |
|
|
|
t.setXmmc(StringUtils.isBlank(t.getXmmc())?"":t.getXmmc()); |
|
|
|
t.setXmdw(StringUtils.isBlank(t.getXmdw())?"":t.getXmdw()); |
|
|
|
t.setXmdw(StringUtils.isBlank(t.getXmdw())?"":t.getXmdw()); |
|
|
|
t.setGgxh(StringUtils.isBlank(t.getGgxh())?"":t.getGgxh()); |
|
|
|
t.setGgxh(StringUtils.isBlank(t.getGgxh())?"":t.getGgxh()); |
|
|
|
|
|
|
|
t.setZxbm(StringUtils.isBlank(t.getZxbm())?"":t.getZxbm()); |
|
|
|
return t; |
|
|
|
return t; |
|
|
|
}).collect(Collectors.groupingBy(t -> t.getFphxz() + t.getXmmc() + t.getXmdw() + t.getGgxh() + t.getSl() + t.getSpbm())); |
|
|
|
}).collect(Collectors.groupingBy(t -> t.getFphxz() + t.getXmmc() + t.getXmdw() + t.getGgxh() + t.getSl() + t.getSpbm() + t.getZxbm())); |
|
|
|
List<OrderItemInfo> orderItemInfoList = new ArrayList<>(); |
|
|
|
List<OrderItemInfo> orderItemInfoList = new ArrayList<>(); |
|
|
|
List<String> deleteItem = new ArrayList<>(); |
|
|
|
List<String> deleteItem = new ArrayList<>(); |
|
|
|
log.debug("合并名称分组{}",JSONObject.toJSONString(collect1)); |
|
|
|
log.debug("合并名称分组{}",JSONObject.toJSONString(collect1)); |
|
|
@ -2065,21 +2065,32 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
//重算税额
|
|
|
|
//重算税额
|
|
|
|
String hsbz = orderItemInfo.getHsbz(); |
|
|
|
String hsbz = orderItemInfo.getHsbz(); |
|
|
|
BigDecimal taxRate = new BigDecimal(orderItemInfo.getSl()); |
|
|
|
BigDecimal taxRate = new BigDecimal(orderItemInfo.getSl()); |
|
|
|
BigDecimal taxAmout = new BigDecimal(orderItemInfo.getXmje()); |
|
|
|
BigDecimal taxAmount = new BigDecimal(orderItemInfo.getSe()); |
|
|
|
if (OrderInfoEnum.HSBZ_1.getKey().equals(hsbz)) { |
|
|
|
if (OrderInfoEnum.HSBZ_1.getKey().equals(hsbz)) { |
|
|
|
taxAmout = xmje.divide(new BigDecimal("1").add(taxRate),0).multiply(taxRate).setScale(2,RoundingMode.HALF_UP); |
|
|
|
taxAmount = xmje.divide(new BigDecimal("1").add(taxRate),0).multiply(taxRate).setScale(2,RoundingMode.HALF_UP); |
|
|
|
} else if (OrderInfoEnum.HSBZ_0.getKey().equals(hsbz)) { |
|
|
|
} else if (OrderInfoEnum.HSBZ_0.getKey().equals(hsbz)) { |
|
|
|
taxAmout = xmje.multiply(taxRate).setScale(2,RoundingMode.HALF_UP); |
|
|
|
taxAmount = xmje.multiply(taxRate).setScale(2,RoundingMode.HALF_UP); |
|
|
|
} |
|
|
|
} |
|
|
|
orderItemInfo.setCreateTime(new Date()); |
|
|
|
orderItemInfo.setCreateTime(new Date()); |
|
|
|
orderItemInfo.setSe(se.toString()); |
|
|
|
orderItemInfo.setSe(se.toString()); |
|
|
|
if(se.subtract(taxAmout).abs().longValue() <= 0.06){ |
|
|
|
if(se.subtract(taxAmount).abs().longValue() > 0.06){ |
|
|
|
orderItemInfoList.add(orderItemInfo); |
|
|
|
BigDecimal taxAndAmount = xmje.add(se); |
|
|
|
deleteItem.addAll(value.stream().map(t->t.getId()).collect(Collectors.toList())); |
|
|
|
BigDecimal taxAmountNew = taxAndAmount.divide(new BigDecimal("1").add(taxRate),0).multiply(taxRate).setScale(2,RoundingMode.HALF_UP); |
|
|
|
}else{ |
|
|
|
BigDecimal xmjeNew = taxAndAmount.multiply(taxAmountNew); |
|
|
|
|
|
|
|
orderItemInfo.setXmje(xmje.toString()); |
|
|
|
|
|
|
|
orderItemInfo.setSe(taxAmountNew.toString()); |
|
|
|
|
|
|
|
if(StringUtils.isNotBlank(orderItemInfo.getXmsl())){ |
|
|
|
|
|
|
|
BigDecimal xmdj = xmjeNew.divide(xmsl, 8, RoundingMode.HALF_UP); |
|
|
|
|
|
|
|
if(xmdj.multiply(xmsl).subtract(xmjeNew).longValue() > 0.01){ |
|
|
|
|
|
|
|
orderItemInfo.setXmsl(xmjeNew.divide(xmdj,8,RoundingMode.HALF_UP).toString()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
orderItemInfo.setXmdj(xmdj.toString()); |
|
|
|
|
|
|
|
} |
|
|
|
log.info("订单id:{}合并明细超过0.06暂时不合并",orderInfoId); |
|
|
|
log.info("订单id:{}合并明细超过0.06暂时不合并",orderInfoId); |
|
|
|
return R.error("明细行号{}合并错误,合并明细超过0.06暂时不合并",orderItemInfo.getSphxh()); |
|
|
|
// return R.error("明细行号{}合并错误,合并明细超过0.06暂时不合并",orderItemInfo.getSphxh());
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
orderItemInfoList.add(orderItemInfo); |
|
|
|
|
|
|
|
deleteItem.addAll(value.stream().map(t->t.getId()).collect(Collectors.toList())); |
|
|
|
} |
|
|
|
} |
|
|
|
// OrderInfo orderInfo = new OrderInfo();
|
|
|
|
// OrderInfo orderInfo = new OrderInfo();
|
|
|
|
// orderInfo.setId(orderInfoId);
|
|
|
|
// orderInfo.setId(orderInfoId);
|
|
|
|