diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java index b8fa00a2..347fc040 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java @@ -1368,11 +1368,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { ddmxxx.stream().forEach(f -> { FpkjtsMxSap detail = new FpkjtsMxSap(); //主信息 - if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(orderProcessInfo.getXtly())){ - detail.setZJSDH(orderProcessInfo.getOriginDdh()); - }else { - detail.setZJSDH(""); - } + detail.setZJSDH(StringUtils.isNotBlank(orderProcessInfo.getOriginDdh())?orderProcessInfo.getOriginDdh():orderProcessInfo.getDdh()); // detail.setZJSDH(ddfpxx.getDDH()); detail.setZFPDM(ddfpxx.getFPDM()); detail.setZFPHM(ddfpxx.getFPHM()); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java index dca09f63..7ca3a351 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java @@ -2037,8 +2037,9 @@ public class OrderInfoServiceImpl implements OrderInfoService { t.setXmmc(StringUtils.isBlank(t.getXmmc())?"":t.getXmmc()); t.setXmdw(StringUtils.isBlank(t.getXmdw())?"":t.getXmdw()); t.setGgxh(StringUtils.isBlank(t.getGgxh())?"":t.getGgxh()); + t.setZxbm(StringUtils.isBlank(t.getZxbm())?"":t.getZxbm()); 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 orderItemInfoList = new ArrayList<>(); List deleteItem = new ArrayList<>(); for (List value : collect1.values()) { @@ -2059,21 +2060,32 @@ public class OrderInfoServiceImpl implements OrderInfoService { //重算税额 String hsbz = orderItemInfo.getHsbz(); 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)) { - 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)) { - taxAmout = xmje.multiply(taxRate).setScale(2,RoundingMode.HALF_UP); + taxAmount = xmje.multiply(taxRate).setScale(2,RoundingMode.HALF_UP); } orderItemInfo.setCreateTime(new Date()); orderItemInfo.setSe(se.toString()); - if(se.subtract(taxAmout).abs().longValue() <= 0.06){ - orderItemInfoList.add(orderItemInfo); - deleteItem.addAll(value.stream().map(t->t.getId()).collect(Collectors.toList())); - }else{ + if(se.subtract(taxAmount).abs().longValue() > 0.06){ + BigDecimal taxAndAmount = xmje.add(se); + BigDecimal taxAmountNew = taxAndAmount.divide(new BigDecimal("1").add(taxRate),0).multiply(taxRate).setScale(2,RoundingMode.HALF_UP); + 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); - 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.setId(orderInfoId);