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); //重新计算清单标志