From 3ca011d6d93b97570871343b8fa7bca5feb0e020 Mon Sep 17 00:00:00 2001 From: liufeilong Date: Mon, 27 Mar 2023 19:41:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BB=93=E7=AE=97=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E4=BF=AE=E6=94=B9=E7=BB=93=E7=AE=97=E5=8D=95?= =?UTF-8?q?=E5=86=85=E5=AE=B9;=E5=8F=91=E7=A5=A8=E5=A1=AB=E5=BC=80-?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E4=BF=AE=E6=94=B9;=E7=94=9F=E6=88=90?= =?UTF-8?q?=E9=A2=84=E5=88=B6=E5=8F=91=E7=A5=A8=E6=A0=A1=E9=AA=8C=E5=86=BB?= =?UTF-8?q?=E7=BB=93=E5=AE=A2=E6=88=B7=E3=80=81=E6=99=BA=E8=83=BD=E8=B5=8B?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/consumer/model/OderDetailInfo.java | 5 +++ .../service/impl/InvoiceServiceImpl.java | 42 +++++++++++++++---- .../modules/order/model/PageInvoiceReq.java | 5 +++ .../service/impl/BeanTransServiceImpl.java | 1 + .../GenerateReadyOpenOrderServiceImpl.java | 7 ++++ .../service/impl/OrderInfoServiceImpl.java | 1 + 6 files changed, 54 insertions(+), 7 deletions(-) diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/OderDetailInfo.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/OderDetailInfo.java index dec25734..30b73420 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/OderDetailInfo.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/OderDetailInfo.java @@ -237,6 +237,11 @@ public class OderDetailInfo { * 报账单号 */ private String bzdh; + /** + * 系统来源 + */ + private String xtly; + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java index 76b49a3e..9cb84225 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java @@ -2,6 +2,7 @@ package com.dxhy.order.consumer.modules.manager.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.dxhy.base.constant.OrderSeparationException; import com.dxhy.base.constant.OrderSplitException; @@ -124,16 +125,43 @@ public class InvoiceServiceImpl implements InvoiceService { List pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList(); //查询数据列表 List commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList); - StringBuffer errorMsg = new StringBuffer(); + List> consumerList = new ArrayList<>(); + List> confirmList = new ArrayList<>(); commonOrderInfos.stream().forEach(f -> { - BuyerEntity buyerEntity = buyerService.queryBuyerInfoByxhfNsrsbhAndBuyerCode(f.getOrderInfo().getXhfNsrsbh(), f.getOrderInfo().getGhfId()); - if(ConfigureConstant.STRING_0.equals(buyerEntity.getStatus())){ - errorMsg.append("【结算单号】:").append(f.getOrderInfo().getDdh()).append(",【客户】:").append(f.getOrderInfo().getGhfMc()).append(";\r"); + OrderInfo orderInfo = f.getOrderInfo(); + List orderItemInfoList = f.getOrderItemInfo(); + BuyerEntity buyerEntity = null; + if(StrUtil.isNotBlank(orderInfo.getGhfId())){ + buyerEntity = buyerService.queryBuyerInfoByxhfNsrsbhAndBuyerCode(orderInfo.getXhfNsrsbh(), orderInfo.getGhfId()); + if(ObjectUtil.isNull(buyerEntity)){ + buyerEntity = buyerService.queryBuyerInfoByxhfNsrsbhAndBuyerCode(ConfigureConstant.STRING_1_, orderInfo.getGhfId()); + } + } + if(ObjectUtil.isNotNull(buyerEntity) && ConfigureConstant.STRING_0.equals(buyerEntity.getStatus())){ + Map map = new HashMap(); + map.put("ddh",orderInfo.getDdh()); + map.put("ghfMc",orderInfo.getGhfMc()); + map.put("ghfNsrsbh",orderInfo.getGhfNsrsbh()); + map.put("hsje",orderInfo.getKphjje()); + consumerList.add(map); } + orderItemInfoList.stream().forEach(item -> { + if(ConfigureConstant.STRING_1.equals(item.getZnfm())){ + Map map = new HashMap(); + map.put("ddh",orderInfo.getDdh()); + map.put("xh",item.getSphxh()); + String xmmc = item.getXmmc(); + map.put("xmmc",xmmc.substring(xmmc.lastIndexOf("*")+1,xmmc.length())); + map.put("ssjc",xmmc.substring(1,xmmc.lastIndexOf("*"))); + map.put("ssbm",item.getSpbm()); + confirmList.add(map); + } + }); }); - if(errorMsg.length()>0){ - errorMsg.append("被冻结,不允许开票!"); - return R.error(errorMsg.toString()); + if(consumerList.size()>0){ + return R.error(ConfigureConstant.STRING_9001, "校验客户提示",consumerList); + }else if((StrUtil.isBlank(pageInvoiceReq.getConfirmZnfm()) || !ConfigureConstant.STRING_0.equals(pageInvoiceReq.getConfirmZnfm())) && confirmList.size()>0){ + return R.error(ConfigureConstant.STRING_9002,"请确认以下物料税收分类编码是否准确",confirmList); }else { commonOrderInfos.stream().forEach(f -> { String terminalCode = simsBackService.getTerminalCode(f.getOrderInfo().getXhfNsrsbh(), f.getOrderInfo().getEntId()); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/PageInvoiceReq.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/PageInvoiceReq.java index 7d2f20d3..bb2f90d6 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/PageInvoiceReq.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/PageInvoiceReq.java @@ -102,5 +102,10 @@ public class PageInvoiceReq implements Serializable { * 待开票数据列表 */ private List pageInvoiceItemList; + + /** + * 提示智能赋码(0:不提示,其他提示) + */ + private String confirmZnfm; } 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 ae5ece26..1bc35f91 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 @@ -141,6 +141,7 @@ public class BeanTransServiceImpl implements BeanTransService { if (StringUtils.isNotBlank(pageOrderInfo.getEntId())) { orderInfo.setEntId(pageOrderInfo.getEntId()); } + orderInfo.setBzdh(pageOrderInfo.getBzdh()); //判断小数点后位数,默认为8位,如果为全电,为15位 int afterPointLength = ConfigureConstant.INT_8; diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/GenerateReadyOpenOrderServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/GenerateReadyOpenOrderServiceImpl.java index 37802a7d..a284895f 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/GenerateReadyOpenOrderServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/GenerateReadyOpenOrderServiceImpl.java @@ -707,6 +707,13 @@ public class GenerateReadyOpenOrderServiceImpl implements GenerateReadyOpenOrder orderProcessInfo.setDdly(commonOrderInfo.getProcessInfo().getDdly()); orderProcessInfo.setDdzt(commonOrderInfo.getProcessInfo().getDdzt()); + orderProcessInfo.setBzdh(commonOrderInfo.getOrderInfo().getBzdh()); + orderProcessInfo.setXtly("FPPAGE"); + orderProcessInfo.setGsdm(""); + orderProcessInfo.setBhzt(ConfigureConstant.STRING_0); + orderProcessInfo.setYzfp(ConfigureConstant.STRING_0); + orderProcessInfo.setOriginDdh(commonOrderInfo.getOrderInfo().getDdh()); + orderProcessInfo.setOriginOrderId(orderInfo.getId()); //原始订单到最终订单的关系 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 1b6fcd98..cb914d6b 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 @@ -393,6 +393,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { oderDetailInfo.setCheckStatus(orderProcessInfo.getCheckStatus()); oderDetailInfo.setCheckTime(DateUtil.format(orderProcessInfo.getCheckTime(), "yyyy-MM-dd HH:mm:ss")); oderDetailInfo.setBzdh(orderProcessInfo.getBzdh()); + oderDetailInfo.setXtly(orderProcessInfo.getXtly()); return oderDetailInfo; }