From 818590130d4563929eec5ce2eb54c3bd4eec3d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E8=8D=A3=E7=90=B3?= Date: Thu, 7 Sep 2023 20:06:19 +0800 Subject: [PATCH] =?UTF-8?q?feature:=E8=A1=A5=E5=BD=95=E6=8A=A5=E8=B4=A6?= =?UTF-8?q?=E5=8D=95=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/constant/OrderInfoContentEnum.java | 4 ++ .../order/controller/OrderInfoController.java | 8 ++-- .../order/service/OrderInfoService.java | 3 +- .../service/impl/OrderInfoServiceImpl.java | 42 ++++++++++++++----- 4 files changed, 41 insertions(+), 16 deletions(-) diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java index fec87b22..31e02916 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java @@ -232,6 +232,10 @@ public enum OrderInfoContentEnum { GENERATE_READY_ESC_ERROR("9642", "二手车种类不允许合并"), GENERATE_READY_JDC_ERROR1("9643", "机动车种类专票不允许合并"), + INVOICE_BZDH_MULTIPLE("9644", "此报账单存在多个结算单"), + + INVOICE_BZDH_OPERATED("9645", "此报账单已做其他操作"), + INVOICE_BILLING_ORDERITEM_XMMC_NULL_ERROR("2000", "发票明细中的商品名称为空!"), diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java index aa382d3d..7f67406e 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java @@ -166,15 +166,15 @@ public class OrderInfoController { @ApiOperation(value = "发票列表", notes = "发票列表修改报账单号") @SysLog(operation = "发票列表", operationDesc = "发票列表修改报账单号", key = "订单发票管理") public R updateBillNumber(@RequestParam("bzdh") String bzdh, - @RequestParam("orderInfoId") String orderInfoId -// @RequestParam("fpqqlsh")String fpqqlsh, -// @RequestParam("xhfNsrsbh")String xhfNsrsbh + @RequestParam("orderInfoId") String orderInfoId, + @RequestParam("fpqqlsh")String fpqqlsh, + @RequestParam("xhfNsrsbh")String xhfNsrsbh ) { if(StringUtils.isBlank(bzdh)||StringUtils.isBlank(orderInfoId)){ return R.error("请求参数有误"); } try { - int i = orderInfoService.updateBillNumber(bzdh, orderInfoId,"",""); + int i = orderInfoService.updateBillNumber(bzdh, orderInfoId,fpqqlsh,xhfNsrsbh); if(i > 0){ return R.ok(); } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java index 1312877d..d545b6fe 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java @@ -222,7 +222,8 @@ public interface OrderInfoService { R ratioConversion(List orderInfoIds,String ratio,String xhfNsrsbh,String originUnit,String newUnit); - int updateBillNumber(String bzdh,String orderInfoId,String fpqqlsh,String xhfNsrsbh); + @Transactional + int updateBillNumber(String bzdh,String orderInfoId,String fpqqlsh,String xhfNsrsbh) throws Exception; @Transactional R logicalDeleteByOrderInfoId(List pageRequestList); 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 89e8f4dd..eaa3aa1e 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 @@ -1752,17 +1752,37 @@ public class OrderInfoServiceImpl implements OrderInfoService { } @Override - public int updateBillNumber(String bzdh,String orderInfoId,String fpqqlsh,String xhfNsrsbh){ - OrderProcessInfo orderProcessInfo = new OrderProcessInfo(); - orderProcessInfo.setBzdh(bzdh); - orderProcessInfo.setOrderInfoId(orderInfoId); - int i = orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo, null); -// if(i > 0) { -// Map map = new HashMap(); -// map.put("ddqqlsh",fpqqlsh); -// map.put("xhfNsrsbh",xhfNsrsbh); -// invoiceDataService.manualPushInvoice(Arrays.asList(map)); -// } + public int updateBillNumber(String bzdh,String orderInfoId,String fpqqlsh,String xhfNsrsbh) throws Exception{ + //通过报账单查询订单,如果存在则删除 + List orderProcessInfos = orderProcessInfoMapper.queryOrderProcessInfoByBzdh(bzdh, Arrays.asList(xhfNsrsbh)); + OrderProcessInfo orderProcessInfo = null; + if(orderProcessInfos.size() > 1){ + throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_BZDH_MULTIPLE); + } + if(orderProcessInfos.size() == 1){ + orderProcessInfo = orderProcessInfos.get(0); + } + + if(orderProcessInfo != null){ + if(!OrderInfoEnum.ORDER_STATUS_0.getKey().equals(orderProcessInfo.getDdzt())){ + throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_BZDH_OPERATED); + } + OrderProcessInfo orderProcessInfo1 = new OrderProcessInfo(); + orderProcessInfo1.setOrderStatus(OrderInfoEnum.ORDER_VALID_STATUS_1.getKey()); + orderProcessInfo1.setOrderInfoId(orderProcessInfo.getId()); + orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo1, Arrays.asList(xhfNsrsbh)); + } + OrderProcessInfo orderProcessInfo2 = new OrderProcessInfo(); + orderProcessInfo2.setBzdh(bzdh); + orderProcessInfo2.setOrderInfoId(orderInfoId); + orderProcessInfo2.setXtly(orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getXtly()) ? orderProcessInfo.getXtly() : ""); + int i = orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo2, Arrays.asList(xhfNsrsbh)); + if(i > 0) { + Map map = new HashMap(); + map.put("ddqqlsh",fpqqlsh); + map.put("xhfNsrsbh",xhfNsrsbh); + invoiceDataService.manualPushInvoice(Arrays.asList(map)); + } return i; }