diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/PageOrderItemInfo.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/PageOrderItemInfo.java index 2e3f55b8..951e12c5 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/PageOrderItemInfo.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/PageOrderItemInfo.java @@ -76,5 +76,9 @@ public class PageOrderItemInfo { * kce */ private String kce; + /** + * 特殊物料 + */ + private String tswl; } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/BeanTransServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/BeanTransServiceImpl.java index 51dd0ed8..34f16f24 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/BeanTransServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/BeanTransServiceImpl.java @@ -196,6 +196,7 @@ public class BeanTransServiceImpl implements BeanTransService { orderItemInfo.setSe(pageOrderItemInfo.getXmse()); orderItemInfo.setKce(pageOrderItemInfo.getKce()); orderItemInfo.setXhfNsrsbh(orderInfo.getXhfNsrsbh()); + orderItemInfo.setTswl(pageOrderItemInfo.getTswl()); orderItemInfos.add(orderItemInfo); i++; 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 7eff9748..5a51ef0d 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 @@ -1654,4 +1654,159 @@ public class OrderInfoServiceImpl implements OrderInfoService { pageKySlRsp.setSlMc(orderInfoEnum.getValue()); return pageKySlRsp; } + + /** + * 红字信息表不存在清单的,对比订单和红字信息表 + * @param order , hzxxb + * @return + */ + private Map compareOrderAndHzxxb(CommonOrderInfo order,CommonOrderInfo hzxxb) { + OrderInfo orderOrderInfo = order.getOrderInfo(); + OrderInfo hzxxbOrderInfo = hzxxb.getOrderInfo(); + StringBuffer errorMsg = new StringBuffer(); + Map returnMap = new HashMap<>(); + returnMap.put("code","0000"); + returnMap.put("msg","success"); + Map gxfCheckMap = compareOrderAndHzxxbGXF(order, hzxxb); + if("9999".equals(gxfCheckMap.get("code"))){ + errorMsg.append(gxfCheckMap.get("msg")); + } + log.info("订单明细{}",JsonUtils.getInstance().toJsonString(order.getOrderItemInfo())); + log.info("红字信息表明细{}",JsonUtils.getInstance().toJsonString(hzxxb.getOrderItemInfo())); + if(hzxxb.getOrderItemInfo().size()!=order.getOrderItemInfo().size()){ + errorMsg.append("红字信息表明细条数和订单明细条数不一致,红字信息表明细条数:"+hzxxb.getOrderItemInfo().size()+"订单明细条数:"+order.getOrderItemInfo().size()); + returnMap.put("code","9999"); + returnMap.put("msg",errorMsg.toString()); + return returnMap; + } + hzxxb.getOrderItemInfo().stream().forEach(hzxxbItem ->{ + List filterItem= new ArrayList<>(); + BigDecimal hzxxbJshj = new BigDecimal(hzxxbItem.getXmje()).add(new BigDecimal(hzxxbItem.getSe())); + for(OrderItemInfo orderItemInfo :order.getOrderItemInfo()){ + BigDecimal orderJshj = new BigDecimal(orderItemInfo.getXmje()).add(new BigDecimal(orderItemInfo.getSe())); + if(hzxxbJshj.compareTo(orderJshj)==0 && hzxxbItem.getXmmc().contains(orderItemInfo.getXmmc()) && orderItemInfo.getSl().equals(hzxxbItem.getSl())){ + filterItem.add(orderItemInfo); + } + } + if(filterItem.size() == 0){ + errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],在订单中未匹配到对应明细;"); + } + }); + /* + hzxxb.getOrderItemInfo().stream().forEach(hzxxbItem -> { + List filterItem = order.getOrderItemInfo().stream().filter(orderItem ->hzxxbItem.getXmmc().contains(orderItem.getXmmc()) && + ((ObjectUtil.isNotNull(orderItem.getGgxh()) && ObjectUtil.isNotNull(hzxxbItem.getGgxh()) && orderItem.getGgxh().equals(hzxxbItem.getGgxh())) || (ObjectUtil.isNull(hzxxbItem.getGgxh()) && ObjectUtil.isNull(orderItem.getGgxh()))) && orderItem.getSl().equals(hzxxbItem.getSl()) && + ((ObjectUtil.isNotNull(orderItem.getXmdj()) && ObjectUtil.isNotNull(hzxxbItem.getXmdj()) && orderItem.getXmdj().equals(hzxxbItem.getXmdj())) || (ObjectUtil.isNull(hzxxbItem.getXmdj()) && ObjectUtil.isNull(orderItem.getXmdj())))).collect(Collectors.toList()); + + if(filterItem.size() == 0){ + errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],在订单中未匹配到对应明细;"); + }else { + OrderItemInfo oii = filterItem.get(0); + if(!hzxxbItem.getXmdw().equals(oii.getXmdw())){ + errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],单位与订单中的单位不匹配;"); + } + if(!hzxxbItem.getXmsl().equals(oii.getXmsl())){ + errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],数量与订单中的数量不匹配;"); + } + if(new BigDecimal(hzxxbItem.getXmje()).compareTo(new BigDecimal(oii.getXmje())) != 0){ + errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],金额与订单中的金额不匹配;"); + } + if(new BigDecimal(hzxxbItem.getSe()).compareTo(new BigDecimal(oii.getSe())) != 0){ + errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],税额与订单中的税额不匹配;"); + } + } + }); + */ + if(errorMsg.length() > 0){ + returnMap.put("code","9999"); + returnMap.put("msg",errorMsg.toString()); + } + return returnMap; + } + + + + /** + * 红字信息表存在清单的,对比订单和红字信息表 + * @param order , hzxxb + * @return + */ + private Map compareOrderAndHzxxbQd(CommonOrderInfo order,CommonOrderInfo hzxxb) { + OrderInfo orderOrderInfo = order.getOrderInfo(); + OrderInfo hzxxbOrderInfo = hzxxb.getOrderInfo(); + StringBuffer errorMsg = new StringBuffer(); + Map returnMap = new HashMap<>(); + returnMap.put("code","0000"); + returnMap.put("msg","success"); + Map gxfCheckMap = compareOrderAndHzxxbGXF(order, hzxxb); + if("9999".equals(gxfCheckMap.get("code"))){ + errorMsg.append(gxfCheckMap.get("msg")); + } + if(new BigDecimal(orderOrderInfo.getKphjje()).compareTo(new BigDecimal(hzxxbOrderInfo.getKphjje())) != 0){ + errorMsg.append("订单与红字信息表的合计金额不一致;"); + } + if(errorMsg.length() > 0){ + returnMap.put("code","9999"); + returnMap.put("msg",errorMsg.toString()); + } + return returnMap; + } + + /** + * 对比订单和红字信息表的购销方信息 + * @param order , hzxxb + * @return + */ + private Map compareOrderAndHzxxbGXF(CommonOrderInfo order,CommonOrderInfo hzxxb) { + StringBuffer errorMsg = new StringBuffer(); + Map returnMap = new HashMap<>(); + returnMap.put("code","0000"); + returnMap.put("msg","success"); + OrderInfo orderOrderInfo = order.getOrderInfo(); + OrderInfo hzxxbOrderInfo = hzxxb.getOrderInfo(); + if(!orderOrderInfo.getXhfNsrsbh().equals(hzxxbOrderInfo.getXhfNsrsbh())){ + errorMsg.append("订单销方纳税人识别号:").append(orderOrderInfo.getXhfNsrsbh()).append(" 红字信息表销方纳税人识别号:").append(hzxxbOrderInfo.getXhfNsrsbh()).append(" 不一致;"); + } + if(!orderOrderInfo.getXhfMc().equals(hzxxbOrderInfo.getXhfMc())){ + errorMsg.append("订单销方名称:").append(orderOrderInfo.getXhfMc()).append(" 红字信息表销方名称:").append(hzxxbOrderInfo.getXhfMc()).append(" 不一致;"); + } +// if(!orderOrderInfo.getXhfDz().equals(hzxxbOrderInfo.getXhfDz())){ +// errorMsg.append("订单销方地址:").append(orderOrderInfo.getXhfDz()).append(" 红字信息表销方地址:").append(hzxxbOrderInfo.getXhfDz()).append(" 不一致;"); +// } +// if(!orderOrderInfo.getXhfDh().equals(hzxxbOrderInfo.getXhfDh())){ +// errorMsg.append("订单销方电话:").append(orderOrderInfo.getXhfDh()).append(" 红字信息表销方电话:").append(hzxxbOrderInfo.getXhfDh()).append(" 不一致;"); +// } +// if(!orderOrderInfo.getXhfYh().equals(hzxxbOrderInfo.getXhfYh())){ +// errorMsg.append("订单销方银行:").append(orderOrderInfo.getXhfYh()).append(" 红字信息表销方银行:").append(hzxxbOrderInfo.getXhfYh()).append(" 不一致;"); +// } +// if(!orderOrderInfo.getXhfZh().equals(hzxxbOrderInfo.getXhfZh())){ +// errorMsg.append("订单销方账号:").append(orderOrderInfo.getXhfZh()).append(" 红字信息表销方账号:").append(hzxxbOrderInfo.getXhfZh()).append(" 不一致;"); +// } + + if(!orderOrderInfo.getGhfNsrsbh().equals(hzxxbOrderInfo.getGhfNsrsbh())){ + errorMsg.append("订单购方纳税人识别号:").append(orderOrderInfo.getGhfNsrsbh()).append(" 红字信息表购方纳税人识别号:").append(hzxxbOrderInfo.getGhfNsrsbh()).append(" 不一致;"); + } + if(!orderOrderInfo.getGhfMc().equals(hzxxbOrderInfo.getGhfMc())){ + errorMsg.append("订单购方名称:").append(orderOrderInfo.getGhfMc()).append(" 红字信息表购方名称:").append(hzxxbOrderInfo.getGhfMc()).append(" 不一致;"); + } +// if(!orderOrderInfo.getGhfDz().equals(hzxxbOrderInfo.getGhfDz())){ +// errorMsg.append("订单购方地址:").append(orderOrderInfo.getGhfDz()).append(" 红字信息表购方地址:").append(hzxxbOrderInfo.getGhfDz()).append(" 不一致;"); +// } +// if(!orderOrderInfo.getGhfDh().equals(hzxxbOrderInfo.getGhfDh())){ +// errorMsg.append("订单购方电话:").append(orderOrderInfo.getGhfDh()).append(" 红字信息表购方电话:").append(hzxxbOrderInfo.getGhfDh()).append(" 不一致;"); +// } +// if(!orderOrderInfo.getGhfYh().equals(hzxxbOrderInfo.getGhfYh())){ +// errorMsg.append("订单购方银行:").append(orderOrderInfo.getGhfYh()).append(" 红字信息表购方银行:").append(hzxxbOrderInfo.getGhfYh()).append(" 不一致;"); +// } +// if(!orderOrderInfo.getGhfZh().equals(hzxxbOrderInfo.getGhfZh())){ +// errorMsg.append("订单购方账号:").append(orderOrderInfo.getGhfZh()).append(" 红字信息表购方账号:").append(hzxxbOrderInfo.getGhfZh()).append(" 不一致;"); +// } + + if(errorMsg.length() > 0){ + returnMap.put("code","9999"); + returnMap.put("msg",errorMsg.toString()); + } + return returnMap; + } + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjMxSap.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjMxSap.java index 6d81e010..b326ffb0 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjMxSap.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjMxSap.java @@ -65,4 +65,8 @@ public class FpkjMxSap { * 矿别 */ private String KTYPE; + /** + * 矿别名称 + */ + private String KNAME; } 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 67c414fe..9552bafb 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 @@ -532,8 +532,12 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { * 2.1 商品编码不为空,使用商品编码补全 * 2.2 商品编码为空,项目名称不为空,使用商品名称补全 */ - item.setZnfm(ConfigureConstant.STRING_1); - item.setTswl(ConfigureConstant.STRING_0); + if(StrUtil.isBlank(item.getZnfm())){ + item.setZnfm(ConfigureConstant.STRING_1); + } + if(StrUtil.isBlank(item.getTswl())){ + item.setTswl(ConfigureConstant.STRING_0); + } if (StringUtils.isNotBlank(item.getSpId())) { R r = commodityService.queryCommodityById(item.getSpId(), shList); if (ConfigureConstant.STRING_0000.equals(r.get(OrderManagementConstant.CODE))) { 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 bca62bb8..d7c2014a 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 @@ -3499,7 +3499,7 @@ public class BeanTransitionUtils { ddtxxBO.setPZGZRQ(req.getZGZRQ()); ddtxxBO.setYZFP(ConfigureConstant.STRING_0); ddtxxBO.setORIGINDDH(req.getZJSDH()); - ddtxxBO.setKB(req.getITITEM().get(0).getKTYPE()); + ddtxxBO.setKB(req.getITITEM().get(0).getKTYPE()+":"+req.getITITEM().get(0).getKNAME()); //TODO lfl 清单标志怎么处理? ddtxxBO.setQDBZ("0"); if(ConfigureConstant.STRING_1.equals(req.getZSFHZ())){ @@ -3538,7 +3538,7 @@ public class BeanTransitionUtils { ddmxxxBO.setHSBZ(ConfigureConstant.STRING_1); ddmxxxBO.setSE(detail.getZZSE()); ddmxxxBO.setPH(detail.getCHARG()); - ddmxxxBO.setKB(detail.getKTYPE()); + ddmxxxBO.setKB(detail.getKTYPE()+":"+detail.getKNAME()); //TODO lfl 优惠政策标识 取税编对应的优惠政策标识! ddmxxxBO.setYHZCBS("0"); ddmxList.add(ddmxxxBO);