From 198bbdad30775b214f3c135096e558926579dfb7 Mon Sep 17 00:00:00 2001 From: gaorl Date: Mon, 24 Jul 2023 11:10:56 +0800 Subject: [PATCH] =?UTF-8?q?feature=EF=BC=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../consumer/utils/BeanTransitionUtils.java | 55 +++++++++++++++---- 1 file changed, 43 insertions(+), 12 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 5ea71ffa..a884704f 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 @@ -3486,7 +3486,7 @@ public class BeanTransitionUtils { DdtxxBO ddtxxBO = new DdtxxBO(); List ddmxList = new ArrayList<>(); - if (OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(isinput.getSYSID())) { + if (OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(isinput.getSYSID()) || OrderInfoEnum.SYS_SOURCE_S4.getKey().equals(isinput.getSYSID())) { String zdataString = isinput.getZDATA(); FpkjReqSap req = JsonUtils.getInstance().parseObject(zdataString, FpkjReqSap.class); //批次信息 @@ -3506,10 +3506,10 @@ public class BeanTransitionUtils { // ddtxxBO.setXHFYH(""); // ddtxxBO.setXHFZH(""); // } else { - ddtxxBO.setXHFDZ(deptEntity.getTaxpayerAddress()); - ddtxxBO.setXHFDH(deptEntity.getTaxpayerPhone()); - ddtxxBO.setXHFYH(deptEntity.getTaxpayerBank()); - ddtxxBO.setXHFZH(deptEntity.getTaxpayerAccount()); + ddtxxBO.setXHFDZ(deptEntity.getTaxpayerAddress()); + ddtxxBO.setXHFDH(deptEntity.getTaxpayerPhone()); + ddtxxBO.setXHFYH(deptEntity.getTaxpayerBank()); + ddtxxBO.setXHFZH(deptEntity.getTaxpayerAccount()); // } ddtxxBO.setGMFBM(req.getZGFBH()); ddtxxBO.setKPR(req.getZKPRXM()); @@ -3519,6 +3519,9 @@ public class BeanTransitionUtils { ddtxxBO.setHJJE(req.getZBHSJE()); ddtxxBO.setHJSE(req.getZZSE()); ddtxxBO.setDDH(req.getZJSDH()); + if(StringUtils.isNotBlank(req.getZSNYX()) && ConfigureConstant.STRING_X.equals(req.getZSNYX())){ + ddtxxBO.setDDH(""); + } ddtxxBO.setBZDH(req.getZBZDH()); ddtxxBO.setXTLY(isinput.getSYSID()); //如果为X,表示数据来自电商系统,开票完成后需要推送给电商系统开票数据及板式文件。 @@ -3538,7 +3541,7 @@ public class BeanTransitionUtils { if(StringUtils.isNotBlank(req.getZDSXT()) && StringUtils.isNotBlank(req.getZDSYWFL())){ ddtxxBO.setXTLY(OrderInfoEnum.SYS_SOURCE_DSXT.getKey()+req.getZDSYWFL()); } - if(StringUtils.isNotBlank(req.getZSNYX())){ + if(StringUtils.isNotBlank(req.getZSNYX()) && ConfigureConstant.STRING_X.equals(req.getZSNYX())){ ddtxxBO.setXTLY(OrderInfoEnum.SYS_SOURCE_SNYXX.getKey()); } ddtxxBO.setGSDM(req.getBUKRS()); @@ -3611,6 +3614,13 @@ public class BeanTransitionUtils { } ddmxxxBO.setPH(detail.getCHARG()); ddmxxxBO.setKB(ObjectUtil.isNull(detail.getKTYPE())?"":detail.getKTYPE()+(ObjectUtil.isNull(detail.getKNAME())?"":detail.getKNAME())); + BigDecimal decimal = new BigDecimal("0"); + if(StringUtils.isNotBlank(ddmxxxBO.getDJ()) && decimal.compareTo(new BigDecimal(ddmxxxBO.getDJ())) == 0) { + ddmxxxBO.setDJ(""); + } + if (StringUtils.isNotBlank(ddmxxxBO.getSPSL()) && decimal.compareTo(new BigDecimal(ddmxxxBO.getSPSL())) == 0) { + ddmxxxBO.setSPSL(""); + } //判断单价*数量与金额的差额大于0.01,大于的话则反算 //判断小数点后位数,默认为8位,如果为全电,为15位 if(!ConfigureConstant.STRING_1.equals(ddmxxxBO.getFPHXZ())){ @@ -3636,19 +3646,40 @@ public class BeanTransitionUtils { } //如果是山能易行按照物料编码分组拆分订单 - if(StringUtils.isNotBlank(ddtxxBO.getXTLY())){ + if(StringUtils.isNotBlank(ddtxxBO.getXTLY()) && OrderInfoEnum.SYS_SOURCE_SNYXX.getKey().equals(ddtxxBO.getXTLY())){ Map> collect = ddmxList.stream().collect(Collectors.groupingBy(t -> t.getZXBM())); - for (int i = 0; i < collect.size(); i++) { + log.info("拆分数据:{}", JSONObject.toJSONString(collect)); + for (Map.Entry> listEntry : collect.entrySet()) { + List ddmxxxBOS = listEntry.getValue(); DdzxxBO ddzxxBONew = new DdzxxBO(); DdtxxBO ddtxxBONew = new DdtxxBO(); List ddmxLists = new ArrayList<>(); - BeanUtils.copyProperties(ddtxxBO,ddtxxBONew); - ddmxLists.addAll(collect.get(i)); + BeanUtils.copyProperties(ddtxxBO, ddtxxBONew); + BigDecimal zje = new BigDecimal("0.00"); + BigDecimal bhsje = new BigDecimal("0.00"); + BigDecimal se = new BigDecimal("0.00"); + for (DdmxxxBO ddmxxxBO : ddmxxxBOS) { + if (StringUtils.isNotBlank(ddmxxxBO.getHSBZ()) && OrderInfoEnum.HSBZ_0.getKey().equals(ddmxxxBO.getHSBZ())) { + //不含稅 + BigDecimal bigDecimal = new BigDecimal(ddmxxxBO.getJE()).add(new BigDecimal(ddmxxxBO.getSE())); + zje = zje.add(bigDecimal); + bhsje = bhsje.add(new BigDecimal(ddmxxxBO.getJE())); + se = se.add(new BigDecimal(ddmxxxBO.getSE())); + } else { + //含稅 + zje = zje.add(new BigDecimal(ddmxxxBO.getJE())); + } + } + ddtxxBONew.setHJJE(bhsje.toPlainString()); + ddtxxBONew.setHJSE(se.toPlainString()); + ddtxxBONew.setJSHJ(zje.toPlainString()); + ddmxLists.addAll(ddmxxxBOS); - ddzxxBONew.setDDTXX(ddtxxBO); - ddzxxBONew.setDDMXXX(ddmxList); + ddzxxBONew.setDDTXX(ddtxxBONew); + ddzxxBONew.setDDMXXX(ddmxLists); ddzxxList.add(ddzxxBONew); } + }else{ ddzxxBO.setDDTXX(ddtxxBO); ddzxxBO.setDDMXXX(ddmxList);