From 54b2bbbea20f2021d358e7b058c76d19cc4e5e72 Mon Sep 17 00:00:00 2001 From: liufeilong Date: Mon, 24 Apr 2023 10:46:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=88=90=E5=93=81=E6=B2=B9=E5=8F=91?= =?UTF-8?q?=E7=A5=A8=E6=A0=A1=E9=AA=8C=E3=80=81=E7=BD=AE=E6=88=90=E5=93=81?= =?UTF-8?q?=E6=B2=B9=E6=B8=85=E5=8D=95=E6=A0=87=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/InvoiceServiceImpl.java | 14 ++++++- .../order/service/OrderSplitService.java | 4 +- .../service/impl/OrderSplitServiceImpl.java | 42 +++++++++++++++---- 3 files changed, 50 insertions(+), 10 deletions(-) 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 e645c0d4..f79d0b74 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 @@ -139,7 +139,7 @@ public class InvoiceServiceImpl implements InvoiceService { List pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList(); //查询数据列表 List commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList); - //购方是否为空、税编是否为空校验、成品油混开校验 + //购方是否为空、税编是否为空校验、成品油校验 for(CommonOrderInfo commonOrderInfo:commonOrderInfos){ if(StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfNsrsbh()) || StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfMc()) ){ return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"购方信息为空,请补全!"); @@ -159,6 +159,9 @@ public class InvoiceServiceImpl implements InvoiceService { } } } + if(ConfigureConstant.STRING_Y.equals(cpy) && commonOrderInfo.getOrderItemInfo().size()>ConfigureConstant.INT_8){ + return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"是成品油发票,明细行数不能超过8行,请先进行手动拆分!"); + } } //客户冻结状态校验、确认智能赋码、单价误差校验 @@ -245,6 +248,10 @@ public class InvoiceServiceImpl implements InvoiceService { return R.error(ConfigureConstant.STRING_9003, "以下订单自动拆分时单价超过设定范围,请手动拆分",djOverflowList); }else { for (CommonOrderInfo f : commonOrderInfos) { + TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(f.getOrderItemInfo().get(0).getSpbm()); + if(ObjectUtil.isNotNull(taxClassCodeEntity) && ConfigureConstant.STRING_Y.equals(taxClassCodeEntity.getCpy())){ + f.getOrderInfo().setQdBz(OrderInfoEnum.QDBZ_CODE_4.getKey()); + } String terminalCode = simsBackService.getTerminalCode(f.getOrderInfo().getXhfNsrsbh(), f.getOrderInfo().getEntId()); List originalCommonOrderInfo = new ArrayList<>(); originalCommonOrderInfo.add(f); @@ -256,6 +263,11 @@ public class InvoiceServiceImpl implements InvoiceService { OrderProcessInfo processInfo = f.getProcessInfo(); processInfo.setYzfp(ConfigureConstant.STRING_1); orderProcessService.updateOrderProcessInfoByProcessId(processInfo, null); + if(ObjectUtil.isNotNull(taxClassCodeEntity) && ConfigureConstant.STRING_Y.equals(taxClassCodeEntity.getCpy())){ + OrderInfo orderInfo = f.getOrderInfo(); + orderInfo.setQdBz(OrderInfoEnum.QDBZ_CODE_4.getKey()); + orderInfoService.updateOrderInfoByOrderId(orderInfo,null); + } } else if (orderSplit.size() > 1) { List commonOrderInfoSaveResults = new ArrayList<>(); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderSplitService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderSplitService.java index 5aadb7d1..5f9d7d3a 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderSplitService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderSplitService.java @@ -23,7 +23,7 @@ public interface OrderSplitService { * @param commonList * @throws OrderReceiveException */ - void splitOrder(List commonList) throws OrderReceiveException; + void splitOrder(List commonList) throws OrderReceiveException,Exception; /** * 订单拆分 @@ -42,5 +42,5 @@ public interface OrderSplitService { * @param commonList * @throws OrderReceiveException */ - void saveOrderSplitOrder(List commonList) throws OrderReceiveException; + void saveOrderSplitOrder(List commonList) throws OrderReceiveException,Exception; } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderSplitServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderSplitServiceImpl.java index 24f465f2..83e36f74 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderSplitServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderSplitServiceImpl.java @@ -2,13 +2,13 @@ package com.dxhy.order.consumer.modules.order.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.dxhy.order.baseservice.module.taxclass.dao.TaxClassCodeMapper; +import com.dxhy.order.baseservice.module.taxclass.model.TaxClassCodeEntity; import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.constant.OrderInfoEnum; import com.dxhy.order.exception.OrderReceiveException; -import com.dxhy.order.model.CommonOrderInfo; -import com.dxhy.order.model.OrderInfo; -import com.dxhy.order.model.OrderItemInfo; -import com.dxhy.order.model.OrderProcessInfo; +import com.dxhy.order.model.*; import com.dxhy.order.utils.CommonUtils; import com.dxhy.order.utils.DecimalCalculateUtil; import com.dxhy.base.constant.OrderSplitConfig; @@ -70,8 +70,11 @@ public class OrderSplitServiceImpl implements OrderSplitService { @Resource private TaxSpecialPolicyUtil taxSpecialPolicyUtil; + @Resource + private TaxClassCodeMapper taxClassCodeMapper; + @Override - public void splitOrder(List commonList) throws OrderReceiveException { + public void splitOrder(List commonList) throws OrderReceiveException,Exception { /** * 以后添加订单拆分后保存的方法 @@ -248,7 +251,7 @@ public class OrderSplitServiceImpl implements OrderSplitService { * @throws OrderReceiveException */ @Override - public void saveOrderSplitOrder(List commonList) throws OrderReceiveException { + public void saveOrderSplitOrder(List commonList) throws OrderReceiveException,Exception { List list = new ArrayList<>(); String oldDdh = commonList.get(0).getOrderInfo().getDdh(); int i = 1; @@ -298,7 +301,7 @@ public class OrderSplitServiceImpl implements OrderSplitService { } - public void saveOrderSplitInfo(List commonList, String type) throws OrderReceiveException { + public void saveOrderSplitInfo(List commonList, String type) throws OrderReceiveException,Exception { String parentOrderId = commonList.get(0).getOrderInfo().getId(); List shList = new ArrayList<>(); @@ -326,6 +329,31 @@ public class OrderSplitServiceImpl implements OrderSplitService { continue; } + //购方是否为空、税编是否为空校验、成品油校验 + if(StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfNsrsbh()) || StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfMc()) ){ + throw new Exception("购方信息为空,请补全!"); + } + String cpy = ""; + for(OrderItemInfo orderItemInfo: commonOrderInfo.getOrderItemInfo()){ + if(StrUtil.isBlank(orderItemInfo.getSpbm())){ + throw new Exception("商品税编存在为空的行,请补全!"); + }else { + TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(orderItemInfo.getSpbm()); + if(StrUtil.isNotBlank(cpy)){ + if(!cpy.equals(taxClassCodeEntity.getCpy())){ + throw new Exception("成品油和非成品油税编不能混开,请做手动拆分处理!"); + } + }else { + cpy = taxClassCodeEntity.getCpy(); + } + } + } + if(ConfigureConstant.STRING_Y.equals(cpy) && commonOrderInfo.getOrderItemInfo().size()>ConfigureConstant.INT_8){ + throw new Exception("成品油发票,明细行数不能超过8行,请先进行手动拆分!"); + } + if(ConfigureConstant.STRING_Y.equals(cpy)){ + orderInfo.setQdBz(OrderInfoEnum.QDBZ_CODE_4.getKey()); + } //清单变非清单 CommonUtils.resetQdbz(orderInfo); //重新计算清单标志