From b7eee49818db4b8c743b61bd97b46801abdaa317 Mon Sep 17 00:00:00 2001 From: gaorl Date: Mon, 26 Jun 2023 15:19:58 +0800 Subject: [PATCH] =?UTF-8?q?feature=EF=BC=9A=E6=98=8E=E7=BB=86=E5=90=88?= =?UTF-8?q?=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrderInfoServiceImpl.java | 48 +++++++++++-------- 1 file changed, 27 insertions(+), 21 deletions(-) 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 7ca3a351..e28e8a91 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 @@ -2042,6 +2042,8 @@ public class OrderInfoServiceImpl implements OrderInfoService { }).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<>(); + BigDecimal diffJe = new BigDecimal("0"); + BigDecimal diffSe = new BigDecimal("0"); for (List value : collect1.values()) { if(value.size() == 1){continue;} BigDecimal xmsl = new BigDecimal("0"); @@ -2069,6 +2071,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { orderItemInfo.setCreateTime(new Date()); orderItemInfo.setSe(se.toString()); if(se.subtract(taxAmount).abs().longValue() > 0.06){ + log.info("订单id:{}合并明细超过0.06",orderInfoId); 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); @@ -2081,37 +2084,40 @@ public class OrderInfoServiceImpl implements OrderInfoService { } orderItemInfo.setXmdj(xmdj.toString()); } - log.info("订单id:{}合并明细超过0.06暂时不合并",orderInfoId); // return R.error("明细行号{}合并错误,合并明细超过0.06暂时不合并",orderItemInfo.getSphxh()); + diffJe = diffJe.add(xmjeNew.subtract(xmje)); + diffSe = diffSe.add(taxAmountNew.subtract(se)); } orderItemInfoList.add(orderItemInfo); deleteItem.addAll(value.stream().map(t->t.getId()).collect(Collectors.toList())); } -// OrderInfo orderInfo = new OrderInfo(); -// orderInfo.setId(orderInfoId); -// orderInfo.setHjse(); -// orderInfo.setHjbhsje(); -// orderInfo.setUpdateTime(new Date()); -// orderMapper.updateOrderInfoByOrderId(orderInfo,null); -// OrderProcessInfo orderProcessInfo = new OrderProcessInfo(); -// orderProcessInfo.setOrderInfoId(orderInfoId); -// -// orderProcessInfo.setHjbhsje(); -// orderProcessInfo.setKpse(); -// orderProcessService.updateOrderProcessInfoByProcessId(orderProcessInfo,null); log.debug("合并明细{}",JSONObject.toJSONString(orderItemInfoList)); if(!orderItemInfoList.isEmpty()){ orderItemInfoMapper.deleteItemByItemId(deleteItem); orderItemInfoMapper.insertOrderItemByList(orderItemInfoList); } - //更新清单标志 - OrderInfo orderInfo1 = orderMapper.selectOrderInfoByOrderId(orderInfoId, null); - if("1".equals(orderInfo1.getQdBz())&&orderItemInfos.size() - deleteItem.size() < 8 ){ - OrderInfo orderInfo = new OrderInfo(); - orderInfo.setId(orderInfoId); - orderInfo.setQdBz("0"); - orderMapper.updateOrderInfoByOrderId(orderInfo,null); - } + //更新清单标志 重新设置金额 + OrderInfo orderInfo = orderMapper.selectOrderInfoByOrderId(orderInfoId, null); + OrderInfo orderInfoNew = new OrderInfo(); + orderInfoNew.setId(orderInfoId); + orderInfoNew.setUpdateTime(new Date()); + OrderProcessInfo orderProcessInfo = orderProcessInfoMapper.selectByOrderId(orderInfoId, null); + OrderProcessInfo orderProcessInfoNew = new OrderProcessInfo(); + orderProcessInfoNew.setId(orderProcessInfo.getId()); + orderProcessInfoNew.setUpdateTime(new Date()); + if("1".equals(orderInfo.getQdBz())&&orderItemInfos.size() - deleteItem.size() < 8 ){ + orderInfoNew.setQdBz("0"); + } + if(diffJe.compareTo(BigDecimal.ZERO) != 0){ + String bhsje = new BigDecimal(orderInfo.getKphjje()).add(diffJe).toString(); + String se = new BigDecimal(orderInfo.getHjse()).add(diffSe).toString(); + orderInfoNew.setHjbhsje(bhsje); + orderInfoNew.setHjse(se); + orderProcessInfoNew.setHjbhsje(bhsje); + orderProcessInfoNew.setKpse(se); + } + orderMapper.updateOrderInfoByOrderId(orderInfoNew,null); + orderProcessInfoMapper.updateOrderProcessInfoByProcessId(orderProcessInfoNew,null); return R.ok(); }