From 0716f496abcff3e4157c6a104644f8c6d9b267ec Mon Sep 17 00:00:00 2001 From: gongquanlin <1025081659@qq.com> Date: Wed, 29 Mar 2023 15:36:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=8F=91=E7=A5=A8=E5=9B=9E=E6=8E=A8?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8A=A5=E8=B4=A6=E5=8D=95=E5=8F=B7=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8E=9F=E5=A7=8B=E6=8E=A5=E5=8F=97map?= =?UTF-8?q?=E4=B8=BAdto=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CommodityController.java | 2 +- .../controller/InvoiceReceiveController.java | 46 +++++++++---------- .../model/dto/ManualPushInvoiceDTO.java | 17 +++++++ .../model/dto/ManualPushInvoiceDetailDTO.java | 14 ++++++ .../manager/service/InvoiceDataService.java | 3 +- .../service/impl/InvoiceDataServiceImpl.java | 28 +++++++++-- 6 files changed, 80 insertions(+), 30 deletions(-) create mode 100644 order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDTO.java create mode 100644 order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDetailDTO.java diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java index 997de1e9..df946a85 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java @@ -647,7 +647,7 @@ public class CommodityController { commodityExcel.setSpbm(commodityCodeEntity.getSpbm()); commodityExcel.setSpjc(nullToEmptyString(commodityCodeEntity.getSpjc())); - if (OrderInfoEnum.YHZCBS_1.getKey().equals(commodityCodeEntity.getYhzcbs())) { + if (OrderInfoEnum.YHZCBS_1.getKey().equals(commodityCodeEntity.getYhzcbs( ))) { commodityExcel.setYhzcbs(ConfigureConstant.STRING_YHZCBS_S); } else if (OrderInfoEnum.YHZCBS_0.getKey().equals(commodityCodeEntity.getYhzcbs())) { commodityExcel.setYhzcbs(ConfigureConstant.STRING_YHZCBS_F); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/controller/InvoiceReceiveController.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/controller/InvoiceReceiveController.java index 6dc24734..5c465f27 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/controller/InvoiceReceiveController.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/controller/InvoiceReceiveController.java @@ -3,7 +3,9 @@ package com.dxhy.order.consumer.modules.manager.controller; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.dxhy.order.constant.*; +import com.dxhy.order.consumer.modules.manager.model.dto.ManualPushInvoiceDTO; import com.dxhy.order.exception.OrderReceiveException; import com.dxhy.order.model.*; import com.dxhy.order.model.newsk.invoiceissue.InvoiceIssueFailDetail; @@ -46,8 +48,8 @@ import java.util.Map; import java.util.Objects; /** - * @Description :接收税控底层数据接口 * @author :杨士勇 + * @Description :接收税控底层数据接口 * @ClassName :InvocieReceiveController * @date :2019年6月3日 下午2:54:23 */ @@ -147,7 +149,7 @@ public class InvoiceReceiveController { @ApiOperation(value = "接收税控发票修复数据", notes = "接收税控发票修复数据-接收税控底层修复的发票数据") @PostMapping("/receiveRepairedInvoices") - public InterfaceData receiveRepairedInvoices(HttpServletRequest request){ + public InterfaceData receiveRepairedInvoices(HttpServletRequest request) { InterfaceData interfaceData = new InterfaceData(); try { String data = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8); @@ -171,15 +173,15 @@ public class InvoiceReceiveController { } catch (OrderReceiveException e) { log.error("{}接收税控发票修复数据异常:{}", LOGGER_MSG, e.getMessage()); - return buildReturnData(interfaceData,e.getCode(),e.getMessage(),null); + return buildReturnData(interfaceData, e.getCode(), e.getMessage(), null); } catch (Exception e) { log.error("{}接收税控发票修复数据异常:{}", LOGGER_MSG, e.getMessage()); - return buildReturnData(interfaceData,ConfigureConstant.STRING_9999,e.getMessage(),null); + return buildReturnData(interfaceData, ConfigureConstant.STRING_9999, e.getMessage(), null); } } - private InterfaceData buildReturnData(InterfaceData interfaceData,String code,String msg,Object object){ - if(ObjectUtil.isNotNull(object)){ + private InterfaceData buildReturnData(InterfaceData interfaceData, String code, String msg, Object object) { + if (ObjectUtil.isNotNull(object)) { interfaceData.setData(JsonUtils.getInstance().toJsonString(object)); } interfaceData.setReturnCode(code); @@ -225,9 +227,9 @@ public class InvoiceReceiveController { errorMsg = "订单调用底层接口异常:开票点正忙"; } else { - if(ObjectUtil.isNotNull(invoicePushFg)){ + if (ObjectUtil.isNotNull(invoicePushFg)) { InvoiceIssueFailDetail faildetail = invoicePushFg.getFAILDETAIL(); - if(Objects.nonNull(faildetail) && StringUtils.isNotBlank(faildetail.getSFXYCS())){ + if (Objects.nonNull(faildetail) && StringUtils.isNotBlank(faildetail.getSFXYCS())) { //根据发票请求流水号查询订单信息 List shList = NsrsbhUtils.transShListByNsrsbh(interfaceData.getTaxpayerNo()); @@ -239,34 +241,34 @@ public class InvoiceReceiveController { return R.error(OrderInfoContentEnum.INVOICE_DATA_BATCH_NULL); } - TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(interfaceData.getTaxpayerNo(),oldOrderInvoiceInfo.getEntId()); - log.debug("{}查询销项后台销方开票状态,返回结果:{}",LOGGER_MSG, JsonUtils.getInstance().toJsonString(taxEquipmentInfo)); + TaxEquipmentInfo taxEquipmentInfo = simsBackService.queryTaxEquipment(interfaceData.getTaxpayerNo(), oldOrderInvoiceInfo.getEntId()); + log.debug("{}查询销项后台销方开票状态,返回结果:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(taxEquipmentInfo)); //开票开关 String invoicingSwitch = ""; - if(Objects.nonNull(taxEquipmentInfo)){ + if (Objects.nonNull(taxEquipmentInfo)) { invoicingSwitch = taxEquipmentInfo.getFlag(); } - if(OrderInfoEnum.INVOICE_RETRY_0.getKey().equals(faildetail.getSFXYCS())){ + if (OrderInfoEnum.INVOICE_RETRY_0.getKey().equals(faildetail.getSFXYCS())) { //税控返回'不重试',开票数据不放入延时队列 sendDelay = false; - } else if (OrderInfoEnum.INVOICE_RETRY_1.getKey().equals(faildetail.getSFXYCS())){ + } else if (OrderInfoEnum.INVOICE_RETRY_1.getKey().equals(faildetail.getSFXYCS())) { //税控返回'可重试',需要根据企业是否暂停开票判断,开票数据是否放入延时队列 - if(ConfigureConstant.STRING_0.equals(invoicingSwitch)){ + if (ConfigureConstant.STRING_0.equals(invoicingSwitch)) { //企业未暂停开票,开票数据放入延时队列 sendDelay = true; - } else if (ConfigureConstant.STRING_1.equals(invoicingSwitch)){ + } else if (ConfigureConstant.STRING_1.equals(invoicingSwitch)) { //企业已暂停开票,需要根据暂停开票原因判断开票数据是否放入延时队列 //如果税控返回的错误信息和销项后台配置的暂停开票原因一致则不放入延时队列 sendDelay = true; - if(taxEquipmentInfo.getFlagCode().equals(faildetail.getCWDM())){ + if (taxEquipmentInfo.getFlagCode().equals(faildetail.getCWDM())) { sendDelay = false; } } - } else if (OrderInfoEnum.INVOICE_RETRY_2.getKey().equals(faildetail.getSFXYCS())){ + } else if (OrderInfoEnum.INVOICE_RETRY_2.getKey().equals(faildetail.getSFXYCS())) { //税控返回'必须重试',开票数据放入延时队列 sendDelay = true; @@ -301,7 +303,7 @@ public class InvoiceReceiveController { } } - if(sendDelay){ + if (sendDelay) { if (OrderInfoEnum.INVOICE_STATUS_2.getKey().equals(oldOrderInvoiceInfo.getKpzt())) { @@ -413,16 +415,14 @@ public class InvoiceReceiveController { @ApiOperation(value = "手动推送", notes = "开票结果接收-手动推送") @PostMapping("/manualPushInvoice") @SysLog(operation = "手动推送发票数据", operationDesc = "手动推送发票数据", key = "推送发票") - public R manualPushInvoice(HttpServletRequest request, @ApiParam(name = "ddqqlshArray", value = "订单流水号", required = true) @RequestBody String ddqqlshArray) { + public R manualPushInvoice(HttpServletRequest request, @ApiParam(name = "ddqqlshArray", value = "订单流水号", required = true) @RequestBody ManualPushInvoiceDTO dto) { R r; try { - if (StringUtils.isBlank(ddqqlshArray)) { + if (dto == null || CollectionUtils.isEmpty(dto.getList())) { return R.error(OrderInfoContentEnum.INVOICE_PARAM_ERROR); } - List idList = JSON.parseArray(ddqqlshArray, Map.class); - - r = invoiceDataService.manualPushInvoice(idList); + r = invoiceDataService.manualPushInvoice(dto); return r; } catch (Exception e) { log.error("{}手动回推发票异常:{}", LOGGER_MSG, e); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDTO.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDTO.java new file mode 100644 index 00000000..2ca1609d --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDTO.java @@ -0,0 +1,17 @@ +package com.dxhy.order.consumer.modules.manager.model.dto; + +import lombok.Data; + +import java.util.List; + +/** + * @Description + * @Author 巩权林 + * @Date 2023/3/29 14:25 + **/ +@Data +public class ManualPushInvoiceDTO { + private List list; + private String bzdh; + +} diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDetailDTO.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDetailDTO.java new file mode 100644 index 00000000..a21ca9be --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/dto/ManualPushInvoiceDetailDTO.java @@ -0,0 +1,14 @@ +package com.dxhy.order.consumer.modules.manager.model.dto; + +import lombok.Data; + +/** + * @Description + * @Author 巩权林 + * @Date 2023/3/29 14:28 + **/ +@Data +public class ManualPushInvoiceDetailDTO { + private String ddqqlsh; + private String xhfNsrsbh; +} diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/InvoiceDataService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/InvoiceDataService.java index 1f358e05..950f08e5 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/InvoiceDataService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/InvoiceDataService.java @@ -1,5 +1,6 @@ package com.dxhy.order.consumer.modules.manager.service; +import com.dxhy.order.consumer.modules.manager.model.dto.ManualPushInvoiceDTO; import com.dxhy.order.model.OrderInvoiceInfo; import com.dxhy.order.model.R; @@ -19,7 +20,7 @@ public interface InvoiceDataService { * @param orderInfoIds * @return */ - R manualPushInvoice(List orderInfoIds); + R manualPushInvoice(ManualPushInvoiceDTO orderInfoIds); /** * 更新订单和发票状态 diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceDataServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceDataServiceImpl.java index db2f690d..8d886acf 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceDataServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceDataServiceImpl.java @@ -5,6 +5,8 @@ import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.constant.NsrQueueEnum; import com.dxhy.order.constant.OrderInfoEnum; import com.dxhy.order.constant.OrderManagementConstant; +import com.dxhy.order.consumer.modules.manager.model.dto.ManualPushInvoiceDTO; +import com.dxhy.order.consumer.modules.manager.model.dto.ManualPushInvoiceDetailDTO; import com.dxhy.order.model.*; import com.dxhy.order.model.queue.CommonTsMqData; import com.dxhy.order.model.queue.FpTsMqData; @@ -54,15 +56,16 @@ public class InvoiceDataServiceImpl implements InvoiceDataService { * 发票状态手动回推 */ @Override - public R manualPushInvoice(List idList) { + @Transactional + public R manualPushInvoice(ManualPushInvoiceDTO dto) { Set set = new HashSet<>(); int successCount = 0; - for (Map map : idList) { + for (ManualPushInvoiceDetailDTO map : dto.getList()) { OrderInvoiceInfo orderInvoiceInfo1 = new OrderInvoiceInfo(); - String ddqqlsh = (String) map.get("ddqqlsh"); - String nsrsbh = (String) map.get("xhfNsrsbh"); + String ddqqlsh = map.getDdqqlsh(); + String nsrsbh = map.getXhfNsrsbh(); List shList = new ArrayList<>(); shList.add(nsrsbh); orderInvoiceInfo1.setFpqqlsh(ddqqlsh); @@ -70,6 +73,21 @@ public class InvoiceDataServiceImpl implements InvoiceDataService { if (orderInvoiceInfo == null) { continue; } + + try { + List xhfNsrsbhList = Collections.singletonList(map.getXhfNsrsbh()); + // 新增回写报账单号 + OrderProcessInfo orderProcessInfo = orderProcessInfoMapper.selectByOrderId(orderInvoiceInfo.getOrderInfoId(), xhfNsrsbhList); + if (ObjectUtil.isNull(orderProcessInfo)) { + return R.error("找不到订单处理业务"); + } + orderProcessInfo.setBzdh(dto.getBzdh()); + orderProcessInfoMapper.updateOrderProcessInfoByProcessId(orderProcessInfo, xhfNsrsbhList); + } catch (Exception e) { + e.printStackTrace(); + log.error("{}回写报账单号异常", LOGGER_MSG, e); + } + //查询当前税号的销方信息是否配置推送地址 PushInfo queryPushInfo = new PushInfo(); //推送地址为有效 @@ -210,7 +228,7 @@ public class InvoiceDataServiceImpl implements InvoiceDataService { updateOrderProcessInfo.setUpdateTime(new Date()); int i1 = orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(updateOrderProcessInfo, shList); if (i1 <= 0) { - log.error("{}修改订单状态失败,数据为:{}", LOGGER_MSG,JsonUtils.getInstance().toJsonString(updateOrderProcessInfo)); + log.error("{}修改订单状态失败,数据为:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(updateOrderProcessInfo)); } }