From c0e5cbb2a4c3a3f57e327a7cf941c4ef95c063c7 Mon Sep 17 00:00:00 2001 From: liufeilong Date: Fri, 24 Mar 2023 18:16:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=9F=E6=88=90=E9=A2=84=E5=88=B6?= =?UTF-8?q?=E5=8F=91=E7=A5=A8=E5=86=BB=E7=BB=93=E5=AE=A2=E6=88=B7=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mybatis/mapper/BuyerMapper.xml | 3 - .../service/impl/InvoiceServiceImpl.java | 67 ++++++++++++------- .../service/impl/OrderInfoServiceImpl.java | 34 ++++++++-- 3 files changed, 70 insertions(+), 34 deletions(-) diff --git a/order-management-base-service/src/main/resources/mybatis/mapper/BuyerMapper.xml b/order-management-base-service/src/main/resources/mybatis/mapper/BuyerMapper.xml index 4af6698b..c38f5ddd 100644 --- a/order-management-base-service/src/main/resources/mybatis/mapper/BuyerMapper.xml +++ b/order-management-base-service/src/main/resources/mybatis/mapper/BuyerMapper.xml @@ -759,9 +759,6 @@ and rownum <=10 - - and status = #{status,jdbcType=VARCHAR} - 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 b4e4eac4..76b49a3e 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 @@ -11,6 +11,8 @@ import com.dxhy.order.baseservice.config.BaseServiceConfig; import com.dxhy.order.baseservice.module.base.model.DrawerInfoEntity; import com.dxhy.order.baseservice.module.base.service.BaseService; import com.dxhy.order.baseservice.module.base.service.DrawerInfoService; +import com.dxhy.order.baseservice.module.buyer.model.BuyerEntity; +import com.dxhy.order.baseservice.module.buyer.service.BuyerService; import com.dxhy.order.baseservice.module.thirdservice.redis.service.RedisService; import com.dxhy.order.baseservice.module.thirdservice.simsback.service.SimsBackService; import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; @@ -113,43 +115,58 @@ public class InvoiceServiceImpl implements InvoiceService { @Resource private TaxSpecialPolicyUtil taxSpecialPolicyUtil; + @Resource + private BuyerService buyerService; + @Override public R preInvoice(PageInvoiceReq pageInvoiceReq) { List pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList(); //查询数据列表 List commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList); + StringBuffer errorMsg = new StringBuffer(); commonOrderInfos.stream().forEach(f -> { - String terminalCode = simsBackService.getTerminalCode(f.getOrderInfo().getXhfNsrsbh(), f.getOrderInfo().getEntId()); - List originalCommonOrderInfo = new ArrayList<>(); - originalCommonOrderInfo.add(f); - List orderSplit = new ArrayList<>(); - // 订单超限额拆分 - try { - orderSplit = generateReadyOpenOrderService.orderSplit(originalCommonOrderInfo, terminalCode, pageInvoiceReq.getUserId()); - log.info("{},{}生成预制发票拆分结果:{}",LOGGER_MSG,f.getOrderInfo().getDdh(),JsonUtils.getInstance().toJsonString(orderSplit)); - } catch (OrderSplitException e) { - log.error("{}生成预制发票拆分异常:",LOGGER_MSG,e); + 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"); } - if(orderSplit.size() == 1){ - OrderProcessInfo processInfo = f.getProcessInfo(); - processInfo.setYzfp(ConfigureConstant.STRING_1); - orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null); - }else if(orderSplit.size() > 1){ - List commonOrderInfoSaveResults = new ArrayList<>(); + }); + if(errorMsg.length()>0){ + errorMsg.append("被冻结,不允许开票!"); + return R.error(errorMsg.toString()); + }else { + commonOrderInfos.stream().forEach(f -> { + String terminalCode = simsBackService.getTerminalCode(f.getOrderInfo().getXhfNsrsbh(), f.getOrderInfo().getEntId()); + List originalCommonOrderInfo = new ArrayList<>(); + originalCommonOrderInfo.add(f); + List orderSplit = new ArrayList<>(); + // 订单超限额拆分 try { - commonOrderInfoSaveResults = generateReadyOpenOrderService.saveOrderSplitInfo(orderSplit); - } catch (OrderReceiveException e) { - log.error("{}生成预制发票拆分后保存异常:",LOGGER_MSG,e); + orderSplit = generateReadyOpenOrderService.orderSplit(originalCommonOrderInfo, terminalCode, pageInvoiceReq.getUserId()); + log.info("{},{}生成预制发票拆分结果:{}",LOGGER_MSG,f.getOrderInfo().getDdh(),JsonUtils.getInstance().toJsonString(orderSplit)); + } catch (OrderSplitException e) { + log.error("{}生成预制发票拆分异常:",LOGGER_MSG,e); } - commonOrderInfoSaveResults.stream().forEach(s -> { - OrderProcessInfo processInfo = s.getProcessInfo(); + if(orderSplit.size() == 1){ + OrderProcessInfo processInfo = f.getProcessInfo(); processInfo.setYzfp(ConfigureConstant.STRING_1); orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null); - }); - } - }); - return R.ok("生成预制发票成功,请到发票处理页面查看"); + }else if(orderSplit.size() > 1){ + List commonOrderInfoSaveResults = new ArrayList<>(); + try { + commonOrderInfoSaveResults = generateReadyOpenOrderService.saveOrderSplitInfo(orderSplit); + } catch (OrderReceiveException e) { + log.error("{}生成预制发票拆分后保存异常:",LOGGER_MSG,e); + } + commonOrderInfoSaveResults.stream().forEach(s -> { + OrderProcessInfo processInfo = s.getProcessInfo(); + processInfo.setYzfp(ConfigureConstant.STRING_1); + orderProcessService.updateOrderProcessInfoByProcessId(processInfo,null); + }); + } + }); + return R.ok("生成预制发票成功,请到发票处理页面查看"); + } } @Override 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 d5fb6d80..1b6fcd98 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 @@ -1560,16 +1560,38 @@ public class OrderInfoServiceImpl implements OrderInfoService { @Override public R fillRedMessage(Map param) { + StringBuffer errorMsg = new StringBuffer(); String orderInfoId = param.get("orderInfoId"); String yfpDm = param.get("yfpDm"); String yfpHm = param.get("yfpHm"); String hzxxbbh = param.get("hzxxbbh"); - OrderInfo orderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null); - orderInfo.setYfpDm(yfpDm); - orderInfo.setYfpHm(yfpHm); - orderInfo.setHzxxbbh(hzxxbbh); - orderInfoService.updateOrderInfoByOrderId(orderInfo,null); - return R.ok(); + OrderInfo redOrderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null); + if(StringUtils.isNotBlank(yfpDm) && StringUtils.isNotBlank(yfpHm)){ + OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfoByFpdmAndFphm(yfpDm, yfpHm, null); + if(ObjectUtil.isNull(orderInvoiceInfo)){ + errorMsg.append("所填原蓝票代码、号码在系统中不存在,请检查;\n"); + }else { + //TODO lfl 校验逻辑待补充 + } + }else if(StringUtils.isNotBlank(hzxxbbh)){ + SpecialInvoiceReversalEntity specialInvoiceReversalEntity = specialInvoiceReversalService.selectSpecialInvoiceReversalBySubmitCode(hzxxbbh); + if(ObjectUtil.isNull(specialInvoiceReversalEntity)){ + errorMsg.append("所填红字信息表编号在系统中不存在,请检查\n"); + }else { + + } + } + if(errorMsg.length()>0){ + return R.error(errorMsg.toString()); + }else { + OrderInfo orderInfo = orderInfoService.selectOrderInfoByOrderId(orderInfoId, null); + orderInfo.setYfpDm(yfpDm); + orderInfo.setYfpHm(yfpHm); + orderInfo.setHzxxbbh(hzxxbbh); + orderInfoService.updateOrderInfoByOrderId(orderInfo,null); + return R.ok(); + } + } private PageKySlRsp getDefaultKySlList(OrderInfoEnum orderInfoEnum){