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 ef59a29a..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 @@ -1932,7 +1932,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { try { CommodityCodeEntity commodityCodeEntity = buildCommodity(itemInfo, param, spbmMap); - //判断是否已存在,同步中存在一样的是否需要过滤后期考虑 + //判断是否已存在 int i = 0; //公司不维护 CommodityCodeEntity commodityCodeOld = collect.get(itemInfo.getZxbm()); @@ -2033,7 +2033,6 @@ public class OrderInfoServiceImpl implements OrderInfoService { }else{ collect = orderItemInfos; } - log.debug("合并分组前{}",JSONObject.toJSONString(collect)); Map> collect1 = collect.stream().map(t->{ t.setXmmc(StringUtils.isBlank(t.getXmmc())?"":t.getXmmc()); t.setXmdw(StringUtils.isBlank(t.getXmdw())?"":t.getXmdw()); @@ -2043,12 +2042,10 @@ 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<>(); - log.debug("合并名称分组{}",JSONObject.toJSONString(collect1)); + BigDecimal diffJe = new BigDecimal("0"); + BigDecimal diffSe = new BigDecimal("0"); for (List value : collect1.values()) { - if(value.size() == 1){ - log.debug("跳过合并{}",JSONObject.toJSONString(value)); - continue; - } + if(value.size() == 1){continue;} BigDecimal xmsl = new BigDecimal("0"); BigDecimal xmje = new BigDecimal("0"); BigDecimal se = new BigDecimal("0"); @@ -2074,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); @@ -2086,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(); }