From 0d7c88ac2f30ee408213cb3c51cddefe367a6d66 Mon Sep 17 00:00:00 2001 From: "zhenghaiyang@ele-cloud.com" Date: Wed, 10 May 2023 16:23:20 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feature=201.sap=E6=8E=A8=E5=85=A5=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BF=9D=E6=8C=81=E4=B8=8D=E5=90=AB=E7=A8=8E?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../consumer/utils/BeanTransitionUtils.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java index 9cca1e03..43118004 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java @@ -3537,9 +3537,23 @@ public class BeanTransitionUtils { ddmxxxBO.setDJ(detail.getZZDJ()); } ddmxxxBO.setSL(new BigDecimal(detail.getZTAX()).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP).toString()); - ddmxxxBO.setJE(detail.getZHSJE()); - ddmxxxBO.setHSBZ(ConfigureConstant.STRING_1); - ddmxxxBO.setSE(detail.getZZSE()); + + if(StringUtils.isNotBlank(detail.getZZSE()) && StringUtils.isNotBlank(detail.getZBHSJE())){ + String zje = DecimalCalculateUtil.bigDecimalAdd(detail.getZZSE(), detail.getZBHSJE()); + if(DecimalCalculateUtil.stringCompare(zje,detail.getZHSJE()) != 0){ + log.info("SAP推送的不含税金额+税额不相等,传入的总金额:{},计算后的XMJE:{}",detail.getZHSJE(),zje); + ddmxxxBO.setJE(detail.getZHSJE()); + ddmxxxBO.setHSBZ(ConfigureConstant.STRING_1); + }else { + ddmxxxBO.setJE(detail.getZBHSJE()); + ddmxxxBO.setHSBZ(ConfigureConstant.STRING_0); + ddmxxxBO.setSE(detail.getZZSE()); + } + } else { + ddmxxxBO.setJE(detail.getZHSJE()); + ddmxxxBO.setHSBZ(ConfigureConstant.STRING_1); +// ddmxxxBO.setSE(detail.getZZSE()); + } ddmxxxBO.setPH(detail.getCHARG()); ddmxxxBO.setKB(ObjectUtil.isNull(detail.getKTYPE())?"":detail.getKTYPE()+(ObjectUtil.isNull(detail.getKNAME())?"":detail.getKNAME())); //判断单价*数量与金额的差额大于0.01,大于的话则反算 From 7fc0b8db659329f866dcb8de0acf64685adbed27 Mon Sep 17 00:00:00 2001 From: "zhenghaiyang@ele-cloud.com" Date: Wed, 10 May 2023 18:06:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feature=201.=E8=B5=8B=E5=80=BC=E6=88=90?= =?UTF-8?q?=E5=93=81=E6=B2=B9=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/CommonInterfaceService.java | 5 +++-- ...AllocateInvoiceInterfaceServiceImplV3.java | 10 ++++++++-- .../impl/CommonInterfaceServiceImpl.java | 19 ++++++++++++++++++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/CommonInterfaceService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/CommonInterfaceService.java index 8048f7c0..87256a7a 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/CommonInterfaceService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/CommonInterfaceService.java @@ -11,6 +11,7 @@ import com.dxhy.order.consumer.openapi.protocol.v5.DxhyInterfaceRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; /** * @Description: 订单对外接口业务层接口 @@ -117,8 +118,8 @@ public interface CommonInterfaceService { void dealOrderItem(List orderItemInfo, String xhfNsrsbh, String qdbz, String fpzldm, String terminal, String idType) throws OrderReceiveException; - void dealOrderItem(List orderItemInfo, String xhfNsrsbh, String qdbz, String fpzldm, - String terminal, String idType, String entId) throws OrderReceiveException; + Map dealOrderItem(List orderItemInfo, String xhfNsrsbh, String qdbz, String fpzldm, + String terminal, String idType, String entId) throws OrderReceiveException; /** * 处理受理点 diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/AllocateInvoiceInterfaceServiceImplV3.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/AllocateInvoiceInterfaceServiceImplV3.java index a64dbab0..71bc18c7 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/AllocateInvoiceInterfaceServiceImplV3.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/AllocateInvoiceInterfaceServiceImplV3.java @@ -131,7 +131,6 @@ public class AllocateInvoiceInterfaceServiceImplV3 implements AllocateInvoiceInt private GroupManagementService groupManagementService; @Resource private InvoiceRemarkSetService invoiceRemarkSetService; - /** * 发票开具接口 * @@ -1161,8 +1160,15 @@ public class AllocateInvoiceInterfaceServiceImplV3 implements AllocateInvoiceInt //commonInterfaceService.dealOrderInfoKpr(commonOrderInfo.getOrderInfo(), null); //补全商品信息 - commonInterfaceService.dealOrderItem(commonOrderInfo.getOrderItemInfo(), nsrsbh, commonOrderInfo.getOrderInfo().getQdBz(), + Map map = commonInterfaceService.dealOrderItem(commonOrderInfo.getOrderItemInfo(), nsrsbh, commonOrderInfo.getOrderInfo().getQdBz(), commonOrderInfo.getOrderInfo().getFpzlDm(), terminalCode, ConfigureConstant.STRING_1, commonOrderInfo.getOrderInfo().getEntId()); + if(map != null){ + String cpy = map.get("cpy"); + if(cpy != null && StringUtils.isNotBlank(cpy)){ + orderBatchRequest.setSfcpy(ConfigureConstant.STRING_1); + commonOrderInfo.getOrderInfo().setQdBz(OrderInfoEnum.QDBZ_CODE_4.getKey()); + } + } } public PageKpzzglRsp queryKpzzgl(PageKpzzglReq pageKpzzglReq) { diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java index ff224ab2..4db94e64 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java @@ -37,6 +37,8 @@ import com.dxhy.order.model.qd.OrderInfoQd; import com.dxhy.order.model.qd.QdFjys; import com.dxhy.order.model.sk.sld.SearchSld; import com.dxhy.order.utils.*; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -508,13 +510,16 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { } @Override - public void dealOrderItem(List orderItemInfo, String xhfNsrsbh, String qdbz, String fpzldm, + public Map dealOrderItem(List orderItemInfo, String xhfNsrsbh, String qdbz, String fpzldm, String terminal, String idType, String entId) throws OrderReceiveException { long start = System.currentTimeMillis(); + Map hashMap = Maps.newHashMap(); List shList = new ArrayList<>(); shList.add(xhfNsrsbh); StringBuilder errorStr = new StringBuilder(); + List cpyList = Lists.newArrayList(); for (int i = 0; i < orderItemInfo.size(); i++) { + String cpy = "N"; String pply = "公司库匹配"; OrderItemInfo item = orderItemInfo.get(i); //rowIndex excel导入时为行坐标,其他业务时为明细行在集合中的索引值 @@ -541,6 +546,7 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { if (ConfigureConstant.STRING_0000.equals(r.get(OrderManagementConstant.CODE))) { CommodityCodeEntity commodityCodeEntity = (CommodityCodeEntity) r.get(OrderManagementConstant.DATA); completeCommodityMessageBySpid(item, commodityCodeEntity); + cpy = commodityCodeEntity.getCpy(); } else { log.error("{}根据商品id查询商品信息异常:{}", LOGGER_MSG, r.get(OrderManagementConstant.MESSAGE)); errorStr.append(indexStr) @@ -605,6 +611,7 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { spmc = stringBuilder.append("*").append(taxClassCodeEntity.getSpjc()).append("*").append(spmc).toString(); } item.setXmmc(spmc); + cpy = taxClassCodeEntity.getCpy(); }else { log.debug("{}项目名称:{},智能赋码未匹配到税编",LOGGER_MSG,item.getXmmc()); /*errorStr.append(indexStr) @@ -634,6 +641,7 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { // 判断是否推送了物料的名称、单位、规格型号信息 //如果项目名称为空,使用底层返回数据进行补全,如果不为空,并且需要补全,则进行补全 completeCommodityMessageBySpid(item,commodityCodeEntity); + cpy = commodityCodeEntity.getCpy(); } } else if (StringUtils.isBlank(item.getSpbm())) { @@ -673,6 +681,7 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { CommodityCodeEntity commodityCodeEntity = queryProductList.get(0); completeCommodityMessageByXmmc(item, commodityCodeEntity); + cpy = commodityCodeEntity.getCpy(); } else { //商品编码不为空,需要调用底层商品编码获取简码接口获取数据 String spbm = item.getSpbm(); @@ -697,6 +706,7 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { } } log.debug("{}物料:{},匹配类型:{}",LOGGER_MSG,item.getZxbm(),pply); + cpyList.add(cpy); } if (StringUtils.isNotBlank(errorStr.toString())) { log.error("{}补全商品信息出现错误:{}", LOGGER_MSG, errorStr); @@ -704,6 +714,13 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { } long end = System.currentTimeMillis(); log.debug("{}订单明细信息补全耗时:{}", LOGGER_MSG, end - start); + if(cpyList.size() == orderItemInfo.size()){ + boolean allMatch = cpyList.stream().allMatch(cpy -> cpy.equals("Y")); + if(allMatch){ + hashMap.put("cpy",OrderInfoEnum.QDBZ_CODE_4.getKey()); + } + } + return hashMap; } /**